{"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-6bbd43c1a7fe120c", "name": "Stray `console.log` in TS/JS \u2014 apps/mobile/src/lib/notifications/register.ts:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/mobile/src/lib/notifications/register.ts:56"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d4473625b9595c9", "name": "Stray `console.log` in TS/JS \u2014 apps/mobile/src/lib/db/index.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/mobile/src/lib/db/index.ts:38"}, "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-ddb93b8887a934cf", "name": "Stray `console.log` in TS/JS \u2014 scripts/_robot-inbox-nav.ts:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_robot-inbox-nav.ts:49"}, "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-2ef399aaa23c4337", "name": "Stray `console.log` in TS/JS \u2014 scripts/_diag-token-order.ts:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-token-order.ts:43"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-19c14d4bc783b38e", "name": "Stray `console.log` in TS/JS \u2014 scripts/godentist-blast-experiment.ts:257", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/godentist-blast-experiment.ts:257"}, "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-94ddf2d79583ca20", "name": "Stray `console.log` in TS/JS \u2014 scripts/_diag-realtime-bisect.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-realtime-bisect.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-67a539a3d91debcd", "name": "Stray `console.log` in TS/JS \u2014 scripts/import-whatsapp-history.ts:106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/import-whatsapp-history.ts:106"}, "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-c8e3401624ca120e", "name": "Stray `console.log` in TS/JS \u2014 scripts/_diag-realtime-authed.ts:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-realtime-authed.ts:27"}, "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-fd645999e86511e4", "name": "Stray `console.log` in TS/JS \u2014 scripts/_repro-gemini-schema.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_repro-gemini-schema.ts:38"}, "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-91bababe8ccbd475", "name": "Stray `console.log` in TS/JS \u2014 scripts/varix-conversations-discovery.ts:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/varix-conversations-discovery.ts:22"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dc3f23cec29f0e04", "name": "Stray `console.log` in TS/JS \u2014 scripts/replay-failed-webhooks.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/replay-failed-webhooks.ts:38"}, "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-11d7be8615c133c3", "name": "Stray `console.log` in TS/JS \u2014 scripts/_smoke-ig.ts:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_smoke-ig.ts:32"}, "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-a734d19a5f107933", "name": "Stray `console.log` in TS/JS \u2014 scripts/parse-godentist-xlsx-2019-2022.ts:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/parse-godentist-xlsx-2019-2022.ts:55"}, "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-ace58e1fdf0d8bfc", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-blast-sms-5-team.ts:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-blast-sms-5-team.ts:73"}, "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-0004d5c66ff63255", "name": "Stray `console.log` in TS/JS \u2014 scripts/_diag-ws-list.ts:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-ws-list.ts:8"}, "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-ff1c5e626f50f13c", "name": "Stray `console.log` in TS/JS \u2014 scripts/_diag-browser-repro2.ts:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-browser-repro2.ts:48"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a4b221dfb4884b12", "name": "Stray `console.log` in TS/JS \u2014 scripts/reembed-kb-v4.ts:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reembed-kb-v4.ts:45"}, "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-2e491c10f44b952f", "name": "Stray `console.log` in TS/JS \u2014 scripts/varix-conversations-prep.ts:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/varix-conversations-prep.ts:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1f6b1781e83f6f70", "name": "Stray `console.log` in TS/JS \u2014 scripts/_v4-probe-comprehension.ts:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_v4-probe-comprehension.ts:16"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ef54e5c328ffe6dd", "name": "Stray `console.log` in TS/JS \u2014 scripts/_meta-inspect-msgs.ts:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_meta-inspect-msgs.ts:20"}, "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-d7f6dd87b549c65c", "name": "Stray `console.log` in TS/JS \u2014 scripts/_diag-protocol.ts:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-protocol.ts:39"}, "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-1ef28bf25e59a259", "name": "Stray `console.log` in TS/JS \u2014 scripts/_meta-register-number.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_meta-register-number.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-479a3554422280cf", "name": "Stray `console.log` in TS/JS \u2014 scripts/godentist-prima-promocion-campaign.ts:191", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/godentist-prima-promocion-campaign.ts:191"}, "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-541482cb0f5c5224", "name": "Stray `console.log` in TS/JS \u2014 scripts/_diag-browser-repro.ts:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-browser-repro.ts:36"}, "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-90121e3a15a9110f", "name": "Stray `console.log` in TS/JS \u2014 scripts/_diag-realtime-delivery.ts:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-realtime-delivery.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-cb54c51038cdd4c8", "name": "Stray `console.log` in TS/JS \u2014 scripts/_v4-probe-generation.ts:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_v4-probe-generation.ts:43"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d6fdba6cc96b0882", "name": "Stray `console.log` in TS/JS \u2014 scripts/_diag-browser-repro-local.ts:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-browser-repro-local.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-d766ca99a594c0d2", "name": "Stray `console.log` in TS/JS \u2014 scripts/varix-conversations-export.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/varix-conversations-export.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-51eea21659492cc9", "name": "Stray `console.log` in TS/JS \u2014 scripts/smoke-duplicate-order-products-integrity.ts:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke-duplicate-order-products-integrity.ts:27"}, "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-ea5c59924f3f511f", "name": "Stray `console.log` in TS/JS \u2014 scripts/knowledge-sync.ts:110", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/knowledge-sync.ts:110"}, "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-e3887a57a7bee5a9", "name": "Stray `console.log` in TS/JS \u2014 scripts/analyze-blast-experiment.ts:147", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-blast-experiment.ts:147"}, "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-9bfbc8ea9fabbcfd", "name": "Stray `console.log` in TS/JS \u2014 scripts/_diag-realtime-latency.ts:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-realtime-latency.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-c941be2dcc88cd09", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-tags.ts:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-tags.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-20a9a5c449d12763", "name": "Stray `console.log` in TS/JS \u2014 scripts/_diag-drive-noop.ts:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-drive-noop.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-2e649bd707b4af2e", "name": "Stray `console.log` in TS/JS \u2014 scripts/voice-app/renderer.js:213", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/voice-app/renderer.js:213"}, "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-08c742eb302c178f", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03e-cleanup-partial.ts:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03e-cleanup-partial.ts:27"}, "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-987c1f8f7c0a29b3", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/02-normalize.ts:149", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/02-normalize.ts:149"}, "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-ecdee44acc75ab81", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/04-post-audit.ts:85", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/04-post-audit.ts:85"}, "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-a5977882910de51b", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03a-check-custom-fields.ts:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03a-check-custom-fields.ts:20"}, "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-c116ad6708289da8", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/02b-rematch.ts:301", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/02b-rematch.ts:301"}, "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-8ffabf6b13b5050c", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03f-check-null-ventas.ts:4", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03f-check-null-ventas.ts:4"}, "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-009523d643776731", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03c-check-rematch.ts:3", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03c-check-rematch.ts:3"}, "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-fa9c6c4fd8071653", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/04a-investigate-orphans.ts:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/04a-investigate-orphans.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-7106774f8c4d82be", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/06-tag-confirmado.ts:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/06-tag-confirmado.ts:71"}, "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-b2ec2040ce238fa7", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03-audit.ts:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03-audit.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-3e99dec315181f85", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/04c-verify-counts.ts:52", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/04c-verify-counts.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-5e4262e38b5a46bf", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03b-test-single.ts:78", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03b-test-single.ts:78"}, "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-3f6b427d238eeef3", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03-upload.ts:134", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03-upload.ts:134"}, "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-4b38da46a07b77dc", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/02c-ventas-analysis.ts:90", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/02c-ventas-analysis.ts: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-89efb88abac783c1", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/05-contact-audit.ts:80", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/05-contact-audit.ts:80"}, "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-58e264f932fb98de", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/04b-cleanup-duplicates.ts:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/04b-cleanup-duplicates.ts:64"}, "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-2a2b69cdc78f5a50", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/02a-phone-issues.ts:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/02a-phone-issues.ts:71"}, "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-7333cb0f01e7e069", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/01-download.ts:138", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/01-download.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-7be887d2f31ce846", "name": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03d-check-standalone-fields.ts:7", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03d-check-standalone-fields.ts:7"}, "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-b30e0ab868d72e4b", "name": "Stray `console.log` in TS/JS \u2014 scripts/agent-lifecycle-router/parity-validation.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/agent-lifecycle-router/parity-validation.ts:38"}, "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-8f34cada6132f335", "name": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/index.ts:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/index.ts: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-ef757d49760648af", "name": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/enumerator.ts:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/enumerator.ts:60"}, "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-721939a6991650e9", "name": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/number-extractor.ts:95", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/number-extractor.ts:95"}, "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-c99d59c538aa0c41", "name": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/browser.ts:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/browser.ts:24"}, "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-13463a5999a3e68d", "name": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/writer.ts:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/writer.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-d0080b17f8482ca2", "name": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/chat-scraper.ts:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/chat-scraper.ts:74"}, "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-5e0abeff1a1bdbdb", "name": "Stray `console.log` in TS/JS \u2014 bold-robot/server.js:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 bold-robot/server.js:43"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a1b304a84160d10c", "name": "Stray `console.log` in TS/JS \u2014 bold-robot/src/bold-client.js:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 bold-robot/src/bold-client.js:58"}, "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-91f7c64b12497898", "name": "Stray `console.log` in TS/JS \u2014 bold-robot/src/code-waiter.js:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 bold-robot/src/code-waiter.js: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-94970c366e09420c", "name": "Stray `console.log` in TS/JS \u2014 godentist/robot-godentist/src/index.ts:7", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 godentist/robot-godentist/src/index.ts:7"}, "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-df7e18043925900a", "name": "Stray `console.log` in TS/JS \u2014 godentist/robot-godentist/src/adapters/godentist-adapter.ts:139", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 godentist/robot-godentist/src/adapters/godentist-adapter.ts:139"}, "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-d60799e5335bc6f3", "name": "Stray `console.log` in TS/JS \u2014 robot-coordinadora/src/index.ts:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 robot-coordinadora/src/index.ts:13"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-69b1955157b84e78", "name": "Stray `console.log` in TS/JS \u2014 robot-coordinadora/src/adapters/coordinadora-adapter.ts:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 robot-coordinadora/src/adapters/coordinadora-adapter.ts:42"}, "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-ef164e2781d5b9d4", "name": "Stray `console.log` in TS/JS \u2014 robot-coordinadora/src/api/server.ts:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 robot-coordinadora/src/api/server.ts:86"}, "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-fb1a2a219396a37c", "name": "Stray `console.log` in TS/JS \u2014 src/instrumentation.ts:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/instrumentation.ts:17"}, "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-757cd1510b5a7276", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/custom-fields/field-display.tsx:125", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/custom-fields/field-display.tsx:125"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38a6896a09c025a7", "name": "TODO/FIXME marker in shipping code \u2014 src/components/custom-fields/field-input.tsx:215", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/components/custom-fields/field-input.tsx:215"}, "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-f4032d49c011f001", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/workspace/workspace-switcher.tsx:84", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/workspace/workspace-switcher.tsx:84"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8d573271c1aaf29b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/search/search-result-item.tsx:51", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/search/search-result-item.tsx:51"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0584ed9a50749817", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/integrations/shopify/oauth/callback/route.ts:205", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/integrations/shopify/oauth/callback/route.ts:205"}, "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-59ceea5cd59a53e3", "name": "TODO/FIXME marker in shipping code \u2014 src/app/api/mobile/_lib/rate-limit.ts:3", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/api/mobile/_lib/rate-limit.ts:3"}, "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-8e2eaa91bb9619a0", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/sandbox/process/route.ts:316", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/sandbox/process/route.ts:316"}, "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-c379f29ae3d2133c", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/meta/route.ts:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/meta/route.ts:69"}, "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-29d7ddc8855874f3", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/whatsapp/route.ts:89", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/whatsapp/route.ts:89"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5912835b639cefa2", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/shopify/route.ts:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/shopify/route.ts:93"}, "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-f3e5ebf8347a20a9", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/robot-callback/route.ts:272", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/robot-callback/route.ts:272"}, "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-631a308ea6a5bb9b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/(dashboard)/configuracion/whatsapp/templates/builder/compo", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/whatsapp-bubble.tsx:9"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8a16a7d00747b1d5", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/configuracion/whatsapp/templates/builder/compon", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/template-builder-layout.tsx:145"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad4f08b04aa67a68", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/configuracion/integraciones/components/sync-sta", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/configuracion/integraciones/components/sync-status.tsx:98"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8c0501f99cafe400", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/comandos/components/history-panel.tsx:239", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/comandos/components/history-panel.tsx:239"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1e845358276289e5", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/agentes/routing/editor/_components/MultiSelect.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/agentes/routing/editor/_components/MultiSelect.tsx:80"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2be03594fb3f3a3f", "name": "Stray `console.log` in TS/JS \u2014 src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:563", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:563"}, "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-607264159b66c858", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/debug-v3.tsx:151", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/debug-v3.tsx:151"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b6ebe7734ce6aa53", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/subloop-tab.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/subloop-tab.tsx:175"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc7a76a494faab85", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/pipeline-tab.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/pipeline-tab.tsx:90"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-76d90a09f7a5d046", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/ingest-tab.tsx:2", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/ingest-tab.tsx:236"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46b2d3e894bf3022", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/tools-tab.tsx:37", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/tools-tab.tsx:37"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0cde0c1ee37bb970", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/classify-tab.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/classify-tab.tsx:212"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4f870e52a4f42cf", "name": "Stray `console.log` in TS/JS \u2014 src/app/(dashboard)/whatsapp/components/contact-panel.tsx:148", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/(dashboard)/whatsapp/components/contact-panel.tsx:148"}, "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-67e0c8335a615909", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/template-send-modal.tsx:225", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/template-send-modal.tsx:225"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b84fc083ccbceb19", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/assign-dropdown.tsx:118", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/assign-dropdown.tsx:118"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ba76328f75af853", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/view-order-sheet.tsx:328", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/view-order-sheet.tsx:328"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4ac39a66dd95129f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/chat-header.tsx:345", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/chat-header.tsx:345"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45ebffed894a224d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/media-preview.tsx:192", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/media-preview.tsx:192"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-df9476d6041b6f00", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/new-conversation-modal.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/new-conversation-modal.tsx:273"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-879149f2065fbf8a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/message-input.tsx:572", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/message-input.tsx:572"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-418f9cc09266a25d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/audi", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/auditor-tab.tsx:406"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3fabc092a57b1370", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/turn", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/turn-list.tsx:168"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-77c7e033ae9ac47f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/aud", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/audit-message.tsx:10"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c289184d100af60d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/even", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/event-row.tsx:119"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f11500e030d0e3c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/tareas/components/task-row.tsx:95", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/tareas/components/task-row.tsx:95"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-593d67ee9c16f1f2", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/kanban-column.tsx:315", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/kanban-column.tsx:315"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-538b01411af528f2", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/contact-selector.tsx:215", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/contact-selector.tsx:215"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5f99ad569749c7d8", "name": "Icon-only button without accessible name \u2014 src/app/(dashboard)/crm/pedidos/components/orders-view.tsx:1045", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/app/(dashboard)/crm/pedidos/components/orders-view.tsx:1045"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f93e7af2af300296", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/related-orders.tsx:63", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/related-orders.tsx:63"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3728da787d34d0aa", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/pipeline-tabs.tsx:216", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/pipeline-tabs.tsx:216"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2dd8913dead223cc", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/kanban-card.tsx:260", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/kanban-card.tsx:260"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3545b964c16d3ec2", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/order-sheet.tsx:323", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/order-sheet.tsx:323"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b9233def5f8e864b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/product-picker.tsx:146", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/product-picker.tsx:146"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-569852d8e94a4279", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/contactos/components/csv-export-button.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/contactos/components/csv-export-button.tsx:256"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f34004c6f26693c0", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/contactos/components/duplicate-resolver.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/contactos/components/duplicate-resolver.tsx:162"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-408d6a2e36a3f1f8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/components/automation-list.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/components/automation-list.tsx:191"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d13ba57372e8cacc", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/components/execution-detail-di", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/components/execution-detail-dialog.tsx:216"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a97ad5ae67e708a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/components/execution-history.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/components/execution-history.tsx:218"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c93a1000c23be1c9", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/builder/components/builder-lay", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/builder/components/builder-layout.tsx:112"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f004c7c62946a7a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/builder/components/session-his", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/builder/components/session-history.tsx:166"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9804bff1c9d8f14f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/builder/components/preview-nod", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/builder/components/preview-nodes.tsx:48"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d079ed3644f0f7a3", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sms/components/sms-metrics-cards.tsx:62", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sms/components/sms-metrics-cards.tsx:62"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35ae9659fb490fc9", "name": "Stray `console.log` in TS/JS \u2014 src/app/actions/agent-config.ts:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/actions/agent-config.ts:92"}, "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-f2ae8a9e7cb61623", "name": "TODO/FIXME marker in shipping code \u2014 src/app/actions/conversations.ts:48", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/actions/conversations.ts:48"}, "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-7821adb08e4cd87f", "name": "Stray `console.log` in TS/JS \u2014 src/app/actions/godentist.ts:141", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/actions/godentist.ts:141"}, "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-f1fab7d7523c2c74", "name": "TODO/FIXME marker in shipping code \u2014 src/app/actions/assignment.ts:156", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/actions/assignment.ts:156"}, "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-0a3880d87c584649", "name": "TODO/FIXME marker in shipping code \u2014 src/app/actions/quick-replies.ts:369", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/actions/quick-replies.ts:369"}, "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-0859efe346226be9", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/agent-forensics/condense-timeline.ts", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/agent-forensics/condense-timeline.ts:108"}, "fullDescription": {"text": "React Flow edge labels render with a white rectangle behind the text by default, which scatters bright boxes across a dark canvas. Either drop the label, or override `.react-flow__edge-textbg` and `.react-flow__edge-text` in your stylesheet.\n\nWhy: P-H in CHECKLIST.md \u2014 vendor edge labels bleed white through a dark canvas.\nRule id: fq.edge-label.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e2dff4b7e87e9fdc", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/agent-forensics/condense-previous-tu", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/agent-forensics/condense-previous-turn.ts:66"}, "fullDescription": {"text": "React Flow edge labels render with a white rectangle behind the text by default, which scatters bright boxes across a dark canvas. Either drop the label, or override `.react-flow__edge-textbg` and `.react-flow__edge-text` in your stylesheet.\n\nWhy: P-H in CHECKLIST.md \u2014 vendor edge labels bleed white through a dark canvas.\nRule id: fq.edge-label.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-74987f82f97ccd18", "name": "Stray `console.log` in TS/JS \u2014 src/lib/messenger/webhook-handler.ts:257", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/messenger/webhook-handler.ts:257"}, "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-e10ef2812e89a063", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/observability/flush.ts:151", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/observability/flush.ts:151"}, "fullDescription": {"text": "React Flow edge labels render with a white rectangle behind the text by default, which scatters bright boxes across a dark canvas. Either drop the label, or override `.react-flow__edge-textbg` and `.react-flow__edge-text` in your stylesheet.\n\nWhy: P-H in CHECKLIST.md \u2014 vendor edge labels bleed white through a dark canvas.\nRule id: fq.edge-label.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e170ad20d7775784", "name": "Stray `console.log` in TS/JS \u2014 src/lib/meta/media.ts:249", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/meta/media.ts:249"}, "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-64ce5bea8a6d6fac", "name": "Stray `console.log` in TS/JS \u2014 src/lib/agents/production/agent-config.ts:109", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/production/agent-config.ts:109"}, "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-7c318a8a20240cbe", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/agents/production/metrics.ts:198", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/agents/production/metrics.ts:198"}, "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-e91da265263b62bf", "name": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio/template-manager.ts:302", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio/template-manager.ts:302"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0dcd89cc48f722c9", "name": "Stray `console.log` in TS/JS \u2014 src/lib/agents/godentist-fb-ig/dentos-availability.ts:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/godentist-fb-ig/dentos-availability.ts:45"}, "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-676bfdadf17e8afa", "name": "Stray `console.log` in TS/JS \u2014 src/lib/agents/godentist/dentos-availability.ts:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/godentist/dentos-availability.ts:43"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0a731d70018a7e56", "name": "Stray `console.log` in TS/JS \u2014 src/lib/agents/engine/unified-engine.ts:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/engine/unified-engine.ts: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-03d875ba22cab4a3", "name": "Stray `console.log` in TS/JS \u2014 src/lib/agents/engine/v4-production-runner.ts:337", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/engine/v4-production-runner.ts:337"}, "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-efde6760bd8a1c86", "name": "Stray `console.log` in TS/JS \u2014 src/lib/agents/engine/v3-production-runner.ts:68", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/engine/v3-production-runner.ts:68"}, "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-ecd50891b2cebd78", "name": "Stray `console.log` in TS/JS \u2014 src/lib/agents/interruption-system-v2/observability.ts:85", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/interruption-system-v2/observability.ts:85"}, "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-56619b20e93f2589", "name": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/observability.ts:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/observability.ts:32"}, "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-a89e40a04ad57ff1", "name": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/__tests__/smoke-hybrid.test.ts:339", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/__tests__/smoke-hybrid.test.ts:339"}, "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-d93ac23a3684fc5e", "name": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/llm-fallback/observability.ts:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/llm-fallback/observability.ts:50"}, "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-b6245640eaf49508", "name": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/sub-loop/kb-search-tool.ts:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/sub-loop/kb-search-tool.ts:98"}, "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-b27ae7b1aff33df9", "name": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/sub-loop/tooling-call.ts:227", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/sub-loop/tooling-call.ts:227"}, "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-9878a4006b7735d8", "name": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/core/turn-orchestrator.ts:144", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/core/turn-orchestrator.ts:144"}, "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-791ddfd7ab6845fc", "name": "Stray `console.log` in TS/JS \u2014 src/lib/whatsapp/api.ts:173", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/whatsapp/api.ts:173"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8feb4462002ec59b", "name": "Stray `console.log` in TS/JS \u2014 src/lib/whatsapp/webhook-handler.ts:418", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/whatsapp/webhook-handler.ts:418"}, "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-5c86a462e1c613c2", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/supabase/middleware.ts:73", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/supabase/middleware.ts:73"}, "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-f016d098d8e5860f", "name": "Stray `console.log` in TS/JS \u2014 src/lib/automations/action-executor.ts:200", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/automations/action-executor.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-e3b44ae35dd6034a", "name": "Stray `console.log` in TS/JS \u2014 src/lib/instagram/webhook-handler.ts:338", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/instagram/webhook-handler.ts:338"}, "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-51427e8abf578e39", "name": "Stray `console.log` in TS/JS \u2014 src/lib/shopify/webhook-handler.ts:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/shopify/webhook-handler.ts:62"}, "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-936b8c01e2983b58", "name": "Stray `console.log` in TS/JS \u2014 src/lib/domain/messages.ts:879", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/domain/messages.ts:879"}, "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-8d6e1ae3860283cd", "name": "Stray `console.log` in TS/JS \u2014 src/lib/domain/robot-jobs.ts:350", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/domain/robot-jobs.ts:350"}, "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-0ce78d2d79c9f1a5", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/domain/orders.ts:1937", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/domain/orders.ts:1937"}, "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-b045d85fc4952acd", "name": "Stray `console.log` in TS/JS \u2014 src/lib/domain/carrier-coverage.ts:419", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/domain/carrier-coverage.ts:419"}, "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-98a441a75e726fe5", "name": "Stray `console.log` in TS/JS \u2014 src/lib/domain/contact-reviews.ts:467", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/domain/contact-reviews.ts:467"}, "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-20c354fddd05619e", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/domain/varix-clinic/client.ts:6", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/domain/varix-clinic/client.ts:6"}, "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-f2d9ee36b2e7fbcf", "name": "Stray `console.log` in TS/JS \u2014 src/hooks/use-conversations.ts:605", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/hooks/use-conversations.ts:605"}, "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-009495292bf9ce2b", "name": "Stray `console.log` in TS/JS \u2014 src/hooks/use-messages.ts:354", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/hooks/use-messages.ts:354"}, "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-647224b1be3d63cd", "name": "TODO/FIXME marker in shipping code \u2014 src/inngest/functions/bold-upstream-broken.ts:16", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/inngest/functions/bold-upstream-broken.ts:16"}, "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-0822d0faa6a54afa", "name": "Stray `console.log` in TS/JS \u2014 src/inngest/functions/task-overdue-cron.ts:116", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/inngest/functions/task-overdue-cron.ts:116"}, "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-37861212905cfb0f", "name": "TODO/FIXME marker in shipping code \u2014 src/inngest/functions/godentist-scrape-inconsistent.ts:61", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/inngest/functions/godentist-scrape-inconsistent.ts:61"}, "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-030e723358ff6f41", "name": "Stray `console.log` in TS/JS \u2014 src/inngest/functions/robot-orchestrator.ts:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/inngest/functions/robot-orchestrator.ts:92"}, "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-c904f2de8da75418", "name": "Stray `console.log` in TS/JS \u2014 src/inngest/functions/automation-runner.ts:268", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/inngest/functions/automation-runner.ts:268"}, "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-b8dc20187419ea9f", "name": "Stray `console.log` in TS/JS \u2014 e2e/visual/editorial-fidelity.spec.ts:127", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 e2e/visual/editorial-fidelity.spec.ts:127"}, "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-046b3b72e19661bd", "name": "Stray `console.log` in TS/JS \u2014 e2e/visual/regla6-regression.spec.ts:137", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 e2e/visual/regla6-regression.spec.ts:137"}, "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-4295ab2819e30a24", "name": "Dockerfile runs as root: bold-robot/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: bold-robot/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-41615533441bca7e", "name": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/playwright:v1.58.2-noble", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/playwright:v1.58.2-noble"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e16a0c27ec5856f2", "name": "Dockerfile runs as root: godentist/robot-godentist/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: godentist/robot-godentist/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1c3ab3866bebaae", "name": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/playwright:v1.58.2-noble", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/playwright:v1.58.2-noble"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d8b440bcb2e29eab", "name": "Dockerfile runs as root: robot-coordinadora/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: robot-coordinadora/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-77fad6e65e6f6021", "name": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/playwright:v1.58.2-noble", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/playwright:v1.58.2-noble"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e55b7474c950ebbc", "name": "Insecure pattern 'weak_hash' in apps/mobile/README.md:131", "shortDescription": {"text": "Insecure pattern 'weak_hash' in apps/mobile/README.md:131"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-97802a3cfb39da35", "name": "Insecure pattern 'exec_used' in scripts/voice-app/main.js:76", "shortDescription": {"text": "Insecure pattern 'exec_used' in scripts/voice-app/main.js:76"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-653331981fbd1ceb", "name": "Insecure pattern 'node_child_process' in scripts/voice-app/main.js:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/voice-app/main.js:12"}, "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-d34e98fb7706d112", "name": "Insecure pattern 'direct_innerhtml_assignment' in scripts/voice-app/renderer.js:36", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/voice-app/renderer.js:36"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-37218c812cba7c70", "name": "Insecure pattern 'exec_used' in src/app/api/v1/crm-bots/writer/confirm/route.ts:129", "shortDescription": {"text": "Insecure pattern 'exec_used' in src/app/api/v1/crm-bots/writer/confirm/route.ts:129"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bc7239925181b1fe", "name": "Insecure pattern 'exec_used' in src/app/api/v1/crm-bots/writer/propose/route.ts:130", "shortDescription": {"text": "Insecure pattern 'exec_used' in src/app/api/v1/crm-bots/writer/propose/route.ts:130"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1f4797955c222054", "name": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-query-tools/__tests__/orders.test.ts:70", "shortDescription": {"text": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-query-tools/__tests__/orders.test.ts:70"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-51e4628fcb2ca6c1", "name": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-mutation-tools/__tests__/notes.test.ts:291", "shortDescription": {"text": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-mutation-tools/__tests__/notes.test.ts:291"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-952d3a63a36f8666", "name": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-mutation-tools/__tests__/tasks.test.ts:206", "shortDescription": {"text": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-mutation-tools/__tests__/tasks.test.ts:206"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-20fd9abadcbb09e5", "name": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-mutation-tools/__tests__/contacts.test.ts:178", "shortDescription": {"text": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-mutation-tools/__tests__/contacts.test.ts:178"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3ac2ed3e60724a1b", "name": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-mutation-tools/__tests__/orders.test.ts:199", "shortDescription": {"text": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-mutation-tools/__tests__/orders.test.ts:199"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6da896c4ecf8be7b", "name": "Very large file: godentist/robot-godentist/src/adapters/godentist-adapter.ts (2170 lines)", "shortDescription": {"text": "Very large file: godentist/robot-godentist/src/adapters/godentist-adapter.ts (2170 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-dd87c2436f30acfa", "name": "Very large file: src/app/(dashboard)/whatsapp/components/contact-panel.tsx (1517 lines)", "shortDescription": {"text": "Very large file: src/app/(dashboard)/whatsapp/components/contact-panel.tsx (1517 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-c44d2d41c858e57b", "name": "Very large file: src/app/(dashboard)/crm/pedidos/components/orders-view.tsx (1489 lines)", "shortDescription": {"text": "Very large file: src/app/(dashboard)/crm/pedidos/components/orders-view.tsx (1489 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-0ea7202d97348e35", "name": "Very large file: src/app/(dashboard)/automatizaciones/components/actions-step.tsx (1628 lines)", "shortDescription": {"text": "Very large file: src/app/(dashboard)/automatizaciones/components/actions-step.tsx (1628 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-eaa148efb4d5b3f6", "name": "Very large file: src/app/(dashboard)/confirmaciones/confirmaciones-panel.tsx (1549 lines)", "shortDescription": {"text": "Very large file: src/app/(dashboard)/confirmaciones/confirmaciones-panel.tsx (1549 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-5aa6d5098ca01ad9", "name": "Very large file: src/lib/agents/production/webhook-processor.ts (1348 lines)", "shortDescription": {"text": "Very large file: src/lib/agents/production/webhook-processor.ts (1348 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-ef9054d7ab1cfaab", "name": "Very large file: src/lib/agents/somnio-v4/somnio-v4-agent.ts (1353 lines)", "shortDescription": {"text": "Very large file: src/lib/agents/somnio-v4/somnio-v4-agent.ts (1353 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-203c03f83ba6482c", "name": "Very large file: src/lib/tools/handlers/crm/index.ts (2385 lines)", "shortDescription": {"text": "Very large file: src/lib/tools/handlers/crm/index.ts (2385 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-4849353f115120d4", "name": "Very large file: src/lib/automations/action-executor.ts (1427 lines)", "shortDescription": {"text": "Very large file: src/lib/automations/action-executor.ts (1427 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-8899075a177a0998", "name": "Very large file: src/lib/domain/orders.ts (2146 lines)", "shortDescription": {"text": "Very large file: src/lib/domain/orders.ts (2146 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-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "196 tests / 1180 src (ratio 0.17)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df93ce207aaa8d5d", "name": "54 TODO/FIXME markers", "shortDescription": {"text": "54 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-382eaa47583d9b9f", "name": "Node manifest has dependencies but no lockfile: scripts/voice-app/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: scripts/voice-app/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-82f9d33bcba1a4f7", "name": "Node manifest has dependencies but no lockfile: bold-robot/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: bold-robot/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 1479 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 423 placeholder/mock markers across 173 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, lockfile. 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, lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-87c58681e3870b6a", "name": "Agent authority lacks a verifier contract: .claude/rules/code-changes.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/rules/code-changes.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dcc94a168cd98873", "name": "Commented-code block (5 lines) in playwright.config.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in playwright.config.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f748fd09efdd3181", "name": "Commented-code block (6 lines) in middleware.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in middleware.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2b8002084f6e27b", "name": "Commented-code block (7 lines) in vitest.config.ts:11", "shortDescription": {"text": "Commented-code block (7 lines) in vitest.config.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4a83583bd28b753f", "name": "Commented-code block (8 lines) in next.config.ts:13", "shortDescription": {"text": "Commented-code block (8 lines) in next.config.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa90532c55a36933", "name": "Commented-code block (5 lines) in apps/mobile/app/(tabs)/inbox.tsx:51", "shortDescription": {"text": "Commented-code block (5 lines) in apps/mobile/app/(tabs)/inbox.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-fcf0caaa729bea6d", "name": "Commented-code block (5 lines) in apps/mobile/src/components/settings/SettingsScreen.tsx:55", "shortDescription": {"text": "Commented-code block (5 lines) in apps/mobile/src/components/settings/SettingsScreen.tsx:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb8aa489e40c5722", "name": "Commented-code block (6 lines) in apps/mobile/src/components/media/AudioPlayer.tsx:85", "shortDescription": {"text": "Commented-code block (6 lines) in apps/mobile/src/components/media/AudioPlayer.tsx:85"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9bbfb6f6fecedaa7", "name": "Commented-code block (6 lines) in apps/mobile/src/components/chat/TemplateVariableSheet.tsx:124", "shortDescription": {"text": "Commented-code block (6 lines) in apps/mobile/src/components/chat/TemplateVariableSheet.tsx:124"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-14b8dd2187a357e8", "name": "Commented-code block (7 lines) in apps/mobile/src/components/chat/MessageList.tsx:176", "shortDescription": {"text": "Commented-code block (7 lines) in apps/mobile/src/components/chat/MessageList.tsx:176"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-216bed03d45a49ed", "name": "Commented-code block (6 lines) in apps/mobile/src/components/search/SearchResultRow.tsx:36", "shortDescription": {"text": "Commented-code block (6 lines) in apps/mobile/src/components/search/SearchResultRow.tsx: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-bc824566c9c18d25", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/mobile/src/lib/api-client.ts:4", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/mobile/src/lib/api-client.ts:4"}, "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-26d5da475b97d728", "name": "Commented-code block (5 lines) in apps/mobile/src/lib/workspace/context.tsx:161", "shortDescription": {"text": "Commented-code block (5 lines) in apps/mobile/src/lib/workspace/context.tsx:161"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee5d27a0a21f3bd5", "name": "Commented-code block (7 lines) in apps/mobile/src/lib/api-schemas/bot-mode.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in apps/mobile/src/lib/api-schemas/bot-mode.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9dc4e6454d09e7b", "name": "Commented-code block (7 lines) in apps/mobile/src/lib/api-schemas/messages.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in apps/mobile/src/lib/api-schemas/messages.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51a4fc02f07f72cb", "name": "Commented-code block (5 lines) in apps/mobile/src/lib/api-schemas/search.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/mobile/src/lib/api-schemas/search.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf5b3ba7be1ac1f6", "name": "Commented-code block (5 lines) in apps/mobile/src/lib/api-schemas/templates.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/mobile/src/lib/api-schemas/templates.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-def25a10e14f376e", "name": "Commented-code block (6 lines) in apps/mobile/src/lib/api-schemas/conversations.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in apps/mobile/src/lib/api-schemas/conversations.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a4253d77f83a0c1", "name": "Commented-code block (5 lines) in apps/mobile/src/lib/api-schemas/quick-replies.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/mobile/src/lib/api-schemas/quick-replies.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2f231a550d2e084", "name": "Commented-code block (6 lines) in apps/mobile/src/lib/db/conversations-cache.ts:125", "shortDescription": {"text": "Commented-code block (6 lines) in apps/mobile/src/lib/db/conversations-cache.ts:125"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d26cf1f1a9ccf19e", "name": "Commented-code block (6 lines) in apps/mobile/src/hooks/useContactPanel.ts:232", "shortDescription": {"text": "Commented-code block (6 lines) in apps/mobile/src/hooks/useContactPanel.ts:232"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-350ba757c551d5a5", "name": "Commented-code block (5 lines) in apps/mobile/src/hooks/useBotToggle.ts:79", "shortDescription": {"text": "Commented-code block (5 lines) in apps/mobile/src/hooks/useBotToggle.ts:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bcb3b0768b651dd8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/mobile/src/hooks/useConversationMessages.ts:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/mobile/src/hooks/useConversationMessages.ts:12"}, "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-0769941a935f5352", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/mobile/src/hooks/useInboxList.ts:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/mobile/src/hooks/useInboxList.ts:12"}, "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-0015164c064e67c0", "name": "Commented-code block (10 lines) in shared/mobile-api/schemas.ts:82", "shortDescription": {"text": "Commented-code block (10 lines) in shared/mobile-api/schemas.ts:82"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dde84708a9e98e97", "name": "Commented-code block (9 lines) in scripts/_robot-inbox-nav.ts:8", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/_robot-inbox-nav.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3b57c64c0b0ff9c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/godentist-blast-experiment.ts:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/godentist-blast-experiment.ts:91"}, "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-1c928ce2f07aa66a", "name": "Commented-code block (6 lines) in scripts/_diag-realtime-bisect.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/_diag-realtime-bisect.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c66366e7751e870", "name": "Commented-code block (5 lines) in scripts/_diag-realtime-authed.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/_diag-realtime-authed.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8a978195b2c2167b", "name": "Commented-code block (6 lines) in scripts/debug-doralba-pattern.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/debug-doralba-pattern.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71799936ffed4482", "name": "Commented-code block (5 lines) in scripts/debug-tooling-call-experiment.mjs:4", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/debug-tooling-call-experiment.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b05038857580904", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/_meta-register-number.ts:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/_meta-register-number.ts:38"}, "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-3ae236b438656830", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/godentist-prima-promocion-campaign.ts:97", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/godentist-prima-promocion-campaign.ts:97"}, "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-86aa7ee4af13db2b", "name": "Commented-code block (5 lines) in scripts/migrate-twilio-automations-to-onurix.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/migrate-twilio-automations-to-onurix.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-85ea8d6d58a48b3a", "name": "Commented-code block (8 lines) in scripts/debug-doralba-reproduce.mjs:1", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/debug-doralba-reproduce.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8408fbb1299c669e", "name": "Commented-code block (7 lines) in scripts/_diag-drive-noop.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/_diag-drive-noop.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c78f39f9acf401f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/voice-app/renderer.js:250", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/voice-app/renderer.js:250"}, "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-95cbb9b246c6ad86", "name": "Commented-code block (6 lines) in scripts/lib/whatsapp-history/map.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/lib/whatsapp-history/map.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8da9db2b7d21f095", "name": "Commented-code block (5 lines) in scripts/lib/whatsapp-history/map.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/whatsapp-history/map.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6fa05e881faa8bbd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/bigin-migration/01-download.ts:130", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/bigin-migration/01-download.ts:130"}, "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-8c901a60c4dd0683", "name": "Commented-code block (5 lines) in robot-whatsapp-reader/src/enumerator.ts:21", "shortDescription": {"text": "Commented-code block (5 lines) in robot-whatsapp-reader/src/enumerator.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-4824553bbb8e84cd", "name": "Commented-code block (9 lines) in robot-whatsapp-reader/src/number-extractor.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in robot-whatsapp-reader/src/number-extractor.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d06ffcf0a939fb73", "name": "Commented-code block (6 lines) in robot-whatsapp-reader/src/chat-scraper.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in robot-whatsapp-reader/src/chat-scraper.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da5c4f17542d35d0", "name": "Commented-code block (6 lines) in bold-robot/server.js:69", "shortDescription": {"text": "Commented-code block (6 lines) in bold-robot/server.js:69"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8561ea938e6b663f", "name": "Commented-code block (5 lines) in bold-robot/src/bold-client.js:125", "shortDescription": {"text": "Commented-code block (5 lines) in bold-robot/src/bold-client.js: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-09405f17fbf997f9", "name": "Commented-code block (5 lines) in godentist/robot-godentist/src/adapters/godentist-adapter.ts:44", "shortDescription": {"text": "Commented-code block (5 lines) in godentist/robot-godentist/src/adapters/godentist-adapter.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-a2d77a27d38965f6", "name": "Commented-code block (6 lines) in godentist/robot-godentist/src/api/server.ts:109", "shortDescription": {"text": "Commented-code block (6 lines) in godentist/robot-godentist/src/api/server.ts: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-68e33a631ceca93e", "name": "Commented-code block (5 lines) in robot-coordinadora/src/types/index.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in robot-coordinadora/src/types/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2afdaf7727c20f8", "name": "Commented-code block (5 lines) in robot-coordinadora/src/api/server.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in robot-coordinadora/src/api/server.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc28f65a8e3af0a8", "name": "Commented-code block (5 lines) in src/__tests__/integration/orders-duplicate-products.test.ts:322", "shortDescription": {"text": "Commented-code block (5 lines) in src/__tests__/integration/orders-duplicate-products.test.ts:322"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f6b31ffd4b9744e4", "name": "Commented-code block (5 lines) in src/__tests__/integration/crm-bots/reader.test.ts:140", "shortDescription": {"text": "Commented-code block (5 lines) in src/__tests__/integration/crm-bots/reader.test.ts:140"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-23c9381879a7fc31", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/__tests__/integration/crm-bots/reader.test.ts:65", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/__tests__/integration/crm-bots/reader.test.ts:65"}, "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-2eb29e49b8169ef8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/__tests__/integration/crm-bots/ttl-cron.test.ts:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/__tests__/integration/crm-bots/ttl-cron.test.ts:63"}, "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-4fb3f6eefc150c4e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/__tests__/integration/crm-bots/writer-two-step.test.ts:78", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/__tests__/integration/crm-bots/writer-two-step.test.ts:78"}, "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-85921b70e056e670", "name": "Commented-code block (8 lines) in src/__tests__/integration/crm-bots/security.test.ts:144", "shortDescription": {"text": "Commented-code block (8 lines) in src/__tests__/integration/crm-bots/security.test.ts:144"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-80888c6ea38b6206", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/__tests__/integration/crm-bots/security.test.ts:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/__tests__/integration/crm-bots/security.test.ts:48"}, "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-fc386072266957be", "name": "Commented-code block (8 lines) in src/__tests__/integration/somnio-v4/sub-loop-no-match.test.ts:6", "shortDescription": {"text": "Commented-code block (8 lines) in src/__tests__/integration/somnio-v4/sub-loop-no-match.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1dace530188f71b2", "name": "Commented-code block (10 lines) in src/__tests__/integration/somnio-v4/sub-loop-happy.test.ts:6", "shortDescription": {"text": "Commented-code block (10 lines) in src/__tests__/integration/somnio-v4/sub-loop-happy.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e99f409eaffcc28", "name": "Commented-code block (8 lines) in src/components/settings/connect-whatsapp.tsx:12", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/settings/connect-whatsapp.tsx: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-4467c55c1eabd332", "name": "Commented-code block (5 lines) in src/components/settings/connect-facebook.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/settings/connect-facebook.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c773d21408e0d6df", "name": "Commented-code block (11 lines) in src/components/settings/connect-instagram.tsx:7", "shortDescription": {"text": "Commented-code block (11 lines) in src/components/settings/connect-instagram.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-108f48cb3e251fac", "name": "Commented-code block (9 lines) in src/components/layout/sidebar.tsx:158", "shortDescription": {"text": "Commented-code block (9 lines) in src/components/layout/sidebar.tsx: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-a1dfd5cebb017039", "name": "Commented-code block (5 lines) in src/components/layout/mobile-nav.tsx:77", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/layout/mobile-nav.tsx: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-9c9736ad8fe34663", "name": "Commented-code block (12 lines) in src/app/api/integrations/shopify/oauth/callback/route.ts:4", "shortDescription": {"text": "Commented-code block (12 lines) in src/app/api/integrations/shopify/oauth/callback/route.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce95c1a681fbd7c5", "name": "Commented-code block (6 lines) in src/app/api/v1/crm-bots/reader/route.ts:44", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/v1/crm-bots/reader/route.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-7b4b8025226c7e87", "name": "Commented-code block (7 lines) in src/app/api/config-builder/templates/upload/route.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/config-builder/templates/upload/route.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f842a8ca80f3c4d", "name": "Commented-code block (5 lines) in src/app/api/config-builder/templates/chat/route.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/config-builder/templates/chat/route.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8df49345f81292fb", "name": "Commented-code block (7 lines) in src/app/api/agent-forensics/audit/route.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/agent-forensics/audit/route.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-216ed5576601720e", "name": "Commented-code block (8 lines) in src/app/api/mobile/orders/route.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/api/mobile/orders/route.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ad86aef9c475422", "name": "Commented-code block (5 lines) in src/app/api/mobile/orders/[id]/recompra/route.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/mobile/orders/[id]/recompra/route.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-abf12c7751cec98e", "name": "Commented-code block (6 lines) in src/app/api/mobile/push/register/route.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/mobile/push/register/route.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-06a70f285569c13b", "name": "Commented-code block (5 lines) in src/app/api/mobile/workspaces/route.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/mobile/workspaces/route.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cbd6a3fa6267ef60", "name": "Commented-code block (5 lines) in src/app/api/mobile/health/route.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/mobile/health/route.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b6673276a3ca41df", "name": "Commented-code block (6 lines) in src/app/api/mobile/conversations/route.ts:74", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/mobile/conversations/route.ts:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0e3502a16644ed5", "name": "Commented-code block (6 lines) in src/app/api/mobile/conversations/[id]/orders/route.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/mobile/conversations/[id]/orders/route.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4ba4da2365d95189", "name": "Commented-code block (11 lines) in src/app/api/mobile/conversations/[id]/contact/route.ts:10", "shortDescription": {"text": "Commented-code block (11 lines) in src/app/api/mobile/conversations/[id]/contact/route.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68d9ce6650e7179a", "name": "Commented-code block (5 lines) in src/app/api/mobile/conversations/[id]/bot-mode/route.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/mobile/conversations/[id]/bot-mode/route.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-94fd569e743766c2", "name": "Commented-code block (6 lines) in src/app/api/mobile/conversations/[id]/messages/route.ts:15", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/mobile/conversations/[id]/messages/route.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d56f0493d1af3fc4", "name": "Commented-code block (6 lines) in src/app/api/mobile/templates/route.ts:10", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/mobile/templates/route.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e9878f8593796ea", "name": "Commented-code block (6 lines) in src/app/api/mobile/search/route.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/mobile/search/route.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b5934f75fe753e7c", "name": "Commented-code block (5 lines) in src/app/api/mobile/contacts/[id]/tags/route.ts:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/mobile/contacts/[id]/tags/route.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-48308c2150e98614", "name": "Commented-code block (5 lines) in src/app/api/mobile/_lib/auth.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/mobile/_lib/auth.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b638658494faa66f", "name": "Commented-code block (8 lines) in src/app/api/mobile/quick-replies/route.ts:11", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/api/mobile/quick-replies/route.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b54ef342dc6b9b3b", "name": "Commented-code block (5 lines) in src/app/api/contact-review/[token]/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/contact-review/[token]/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8a40e6e8edd95834", "name": "Commented-code block (6 lines) in src/app/api/sandbox/process/route.ts:133", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/sandbox/process/route.ts:133"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b796a9c8cc50b5ad", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/sandbox/process/route.ts:184", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/sandbox/process/route.ts:184"}, "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-5fe81ae2deb40a15", "name": "Commented-code block (7 lines) in src/app/api/sandbox/process/__tests__/route-v4-lock.test.ts:188", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/sandbox/process/__tests__/route-v4-lock.test.ts:188"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7f0e995f86e1c54", "name": "Commented-code block (6 lines) in src/app/api/sandbox/lock-result/[sandboxSessionId]/__tests__/route.test.ts:21", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/sandbox/lock-result/[sandboxSessionId]/__tests__/route.test.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-9ca24b2588a0142f", "name": "Commented-code block (6 lines) in src/app/api/builder/sessions/route.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/builder/sessions/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99deed147448c36f", "name": "Commented-code block (5 lines) in src/app/api/builder/chat/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/builder/chat/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cedbb57a62a66399", "name": "Commented-code block (7 lines) in src/app/api/webhooks/meta/route.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/webhooks/meta/route.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-493a767a5dcff23e", "name": "Commented-code block (5 lines) in src/app/api/webhooks/whatsapp/route.ts:102", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/webhooks/whatsapp/route.ts: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-1f8a7c04fd022b3f", "name": "Commented-code block (7 lines) in src/app/api/webhooks/shopify/route.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/webhooks/shopify/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ecc0b599e7d63a02", "name": "Commented-code block (5 lines) in src/app/api/webhooks/robot-callback/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/webhooks/robot-callback/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-08cad9216f7e4de0", "name": "Commented-code block (5 lines) in src/app/(dashboard)/fonts.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/fonts.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a3be4c1cf8ad116c", "name": "Commented-code block (5 lines) in src/app/(dashboard)/layout.tsx:22", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/layout.tsx: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-b05be93995e81bb7", "name": "Commented-code block (6 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c25804da1bca5a07", "name": "Commented-code block (8 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/whatsapp-bubbl", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/whatsapp-bubble.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aecf39c30db6b59a", "name": "Commented-code block (8 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/suggested-acti", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/suggested-action-chips.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4157e979f4add58b", "name": "Commented-code block (9 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/chat-pane.tsx:", "shortDescription": {"text": "Commented-code block (9 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/chat-pane.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1f45d7397c69b80", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/ch", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/chat-pane.tsx:67"}, "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-708c06e649cf6b68", "name": "Commented-code block (8 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/preview-pane.t", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/preview-pane.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6aa4797e626b6a7", "name": "Commented-code block (5 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/template-draft", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/template-draft-context.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f44f33af950e450f", "name": "Commented-code block (11 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/image-uploade", "shortDescription": {"text": "Commented-code block (11 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/image-uploader.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69202d36db076be0", "name": "Commented-code block (9 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/chat-message.t", "shortDescription": {"text": "Commented-code block (9 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/chat-message.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-151fcbb9f6e34659", "name": "Commented-code block (9 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/template-build", "shortDescription": {"text": "Commented-code block (9 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/template-builder-layout.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4bceeed68335db50", "name": "Commented-code block (5 lines) in src/app/(dashboard)/configuracion/integraciones/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/configuracion/integraciones/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-919f5d1844fd297a", "name": "Commented-code block (5 lines) in src/app/(dashboard)/configuracion/integraciones/components/bold-form.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/configuracion/integraciones/components/bold-form.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-872d5e01b2a04549", "name": "Commented-code block (8 lines) in src/app/(dashboard)/configuracion/integraciones/components/shopify-form.tsx:8", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/(dashboard)/configuracion/integraciones/components/shopify-form.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-9813012b6666e758", "name": "Commented-code block (7 lines) in src/app/(dashboard)/configuracion/integraciones/components/sms-tab.tsx:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/(dashboard)/configuracion/integraciones/components/sms-tab.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-9296712175573ab0", "name": "Commented-code block (5 lines) in src/app/(dashboard)/agentes/routing/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/agentes/routing/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9b1224df136da21", "name": "Legacy-named symbol `fallback_legacy` in src/app/(dashboard)/agentes/routing/audit/page.tsx:19", "shortDescription": {"text": "Legacy-named symbol `fallback_legacy` in src/app/(dashboard)/agentes/routing/audit/page.tsx:19"}, "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-7bb86c12dea1a773", "name": "Commented-code block (6 lines) in src/app/(dashboard)/agentes/routing/audit/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/agentes/routing/audit/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8eb777bd3a50c542", "name": "Commented-code block (7 lines) in src/app/(dashboard)/agentes/routing/editor/_components/TagPicker.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/(dashboard)/agentes/routing/editor/_components/TagPicker.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8e2df9283c648cad", "name": "Commented-code block (7 lines) in src/app/(dashboard)/agentes/routing/editor/_components/ConditionBuilder.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/(dashboard)/agentes/routing/editor/_components/ConditionBuilder.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22b77a082c657b44", "name": "Commented-code block (8 lines) in src/app/(dashboard)/agentes/routing/editor/_components/SimulateButton.tsx:3", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/(dashboard)/agentes/routing/editor/_components/SimulateButton.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd5d8865c6ec9a1e", "name": "Commented-code block (5 lines) in src/app/(dashboard)/agentes/routing/editor/_components/MultiSelect.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/agentes/routing/editor/_components/MultiSelect.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b535ce96361c446b", "name": "Commented-code block (9 lines) in src/app/(dashboard)/agentes/routing/editor/_components/editor-client.tsx:6", "shortDescription": {"text": "Commented-code block (9 lines) in src/app/(dashboard)/agentes/routing/editor/_components/editor-client.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c11158d254f582e", "name": "Commented-code block (9 lines) in src/app/(dashboard)/agentes/content-editor/_components/AgentSelector.tsx:13", "shortDescription": {"text": "Commented-code block (9 lines) in src/app/(dashboard)/agentes/content-editor/_components/AgentSelector.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49f57d798ad6a405", "name": "Commented-code block (5 lines) in src/app/(dashboard)/agentes/content-editor/_components/KbTopicForm.tsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/agentes/content-editor/_components/KbTopicForm.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aa9d820557e0019d", "name": "Commented-code block (6 lines) in src/app/(dashboard)/agentes/content-editor/_components/TemplateForm.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/agentes/content-editor/_components/TemplateForm.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-18844147e2b5a00e", "name": "Commented-code block (9 lines) in src/app/(dashboard)/agentes/content-editor/_components/TemplatesPanel.tsx:8", "shortDescription": {"text": "Commented-code block (9 lines) in src/app/(dashboard)/agentes/content-editor/_components/TemplatesPanel.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-c99201548e34d923", "name": "Commented-code block (5 lines) in src/app/(dashboard)/agentes/content-editor/_components/KnowledgePanel.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/agentes/content-editor/_components/KnowledgePanel.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-2b1c3fb590b0195e", "name": "Commented-code block (7 lines) in src/app/(dashboard)/agentes/content-editor/_components/KbVersionsPanel.tsx:8", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/(dashboard)/agentes/content-editor/_components/KbVersionsPanel.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-ac70fdb22955f5e6", "name": "Commented-code block (8 lines) in src/app/(dashboard)/agentes/content-editor/_components/ContentImageUploader.tsx:8", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/(dashboard)/agentes/content-editor/_components/ContentImageUploader.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-660c50ccb94d6bb1", "name": "Commented-code block (12 lines) in src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:60", "shortDescription": {"text": "Commented-code block (12 lines) in src/app/(dashboard)/sandbox/components/sandbox-layout.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-e15603ede43a0fea", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:382", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:382"}, "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-1b997b60f41a93d6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/interruption-tab.tsx:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/interruption-tab.tsx:173"}, "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-d1f00ab59253560d", "name": "Commented-code block (5 lines) in src/app/(dashboard)/sandbox/components/debug-panel/panel-container.tsx:40", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/sandbox/components/debug-panel/panel-container.tsx:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0bb34b8c748fb9db", "name": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/page.tsx:30", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/page.tsx:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9f212ec02de981a", "name": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/contact-panel.tsx:246", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/contact-panel.tsx:246"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb23550e2b1db7eb", "name": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/interactive-bubble.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/interactive-bubble.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-119ff47d546936e4", "name": "Commented-code block (11 lines) in src/app/(dashboard)/whatsapp/components/inbox-layout.tsx:95", "shortDescription": {"text": "Commented-code block (11 lines) in src/app/(dashboard)/whatsapp/components/inbox-layout.tsx:95"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9555d0ceb2d6416e", "name": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/message-bubble.tsx:175", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/message-bubble.tsx:175"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66c6e48bdf0b2533", "name": "Commented-code block (7 lines) in src/app/(dashboard)/whatsapp/components/conversation-list.tsx:47", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/(dashboard)/whatsapp/components/conversation-list.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-b40d18a29e22bd3e", "name": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/chat-header.tsx:324", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/chat-header.tsx:324"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-214f1e096db06d0d", "name": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/bold-payment-link-button.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/bold-payment-link-button.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6b7cdffd65f60881", "name": "Legacy-named symbol `ui_inbox_v2` in src/app/(dashboard)/whatsapp/components/inbox-v3-context.tsx:17", "shortDescription": {"text": "Legacy-named symbol `ui_inbox_v2` in src/app/(dashboard)/whatsapp/components/inbox-v3-context.tsx:17"}, "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-132c322dfe029f2f", "name": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/interactive-composer-modal.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/interactive-composer-modal.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c9498bdfef1de687", "name": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/chat-view.tsx:132", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/chat-view.tsx:132"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1f992d5d1501d2f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/whatsapp/components/chat-view.tsx:305", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/whatsapp/components/chat-view.tsx:305"}, "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-a39f012cfc377874", "name": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/message-input.tsx:76", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/message-input.tsx:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8c7f5bdf66aa08c", "name": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/conversation-item.tsx:68", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/conversation-item.tsx:68"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74c0bf0d3b5da58d", "name": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/interactive-composer-button.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/interactive-composer-button.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69eef321acda5279", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/whatsapp/components/__tests__/selection-derivation.tes", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/whatsapp/components/__tests__/selection-derivation.test.tsx:62"}, "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-a09a6c4c3b1d9132", "name": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/debug-panel-production/auditor-tab.tsx:112", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/debug-panel-production/auditor-tab.tsx: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-cde2593ba26adbbb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/auditor-tab", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/auditor-tab.tsx:147"}, "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-4e1f0c9bcb9d4950", "name": "Legacy-named symbol `ui_dashboard_v2` in src/app/(dashboard)/crm/layout.tsx:4", "shortDescription": {"text": "Legacy-named symbol `ui_dashboard_v2` in src/app/(dashboard)/crm/layout.tsx:4"}, "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-efc045ef22a36c17", "name": "Commented-code block (9 lines) in src/app/(dashboard)/crm/pedidos/components/kanban-column.tsx:181", "shortDescription": {"text": "Commented-code block (9 lines) in src/app/(dashboard)/crm/pedidos/components/kanban-column.tsx:181"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c5c3f577d515b82", "name": "Commented-code block (6 lines) in src/app/(dashboard)/crm/pedidos/components/columns.tsx:23", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/crm/pedidos/components/columns.tsx: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-7be91814fad747ac", "name": "Commented-code block (5 lines) in src/app/(dashboard)/crm/pedidos/components/orders-view.tsx:166", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/crm/pedidos/components/orders-view.tsx: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-6d3e28ce59ba9474", "name": "Commented-code block (5 lines) in src/app/(dashboard)/crm/pedidos/components/pipeline-tabs.tsx:126", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/crm/pedidos/components/pipeline-tabs.tsx:126"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e117aaf3a4b3a53", "name": "Commented-code block (7 lines) in src/app/(dashboard)/crm/pedidos/components/kanban-card.tsx:149", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/(dashboard)/crm/pedidos/components/kanban-card.tsx:149"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-950909eb5c2fa56e", "name": "Commented-code block (8 lines) in src/app/(dashboard)/crm/contactos/page.tsx:91", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/(dashboard)/crm/contactos/page.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-a41c8c1ce1050793", "name": "Commented-code block (6 lines) in src/app/(dashboard)/crm/contactos/components/columns.tsx:25", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/crm/contactos/components/columns.tsx:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b9f16c5bb87e42f", "name": "Commented-code block (6 lines) in src/app/(dashboard)/crm/contactos/components/contacts-table.tsx:92", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/crm/contactos/components/contacts-table.tsx:92"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d3559cee0e88f118", "name": "Commented-code block (6 lines) in src/app/(dashboard)/automatizaciones/builder/components/builder-message.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/automatizaciones/builder/components/builder-message.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-396cffef683d36f6", "name": "Commented-code block (6 lines) in src/app/(dashboard)/automatizaciones/builder/components/builder-layout.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/automatizaciones/builder/components/builder-layout.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-513fec5c437709d2", "name": "Commented-code block (6 lines) in src/app/(dashboard)/automatizaciones/builder/components/builder-input.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/automatizaciones/builder/components/builder-input.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-655ce61ec6e53955", "name": "Commented-code block (6 lines) in src/app/(dashboard)/automatizaciones/builder/components/builder-chat.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/automatizaciones/builder/components/builder-chat.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2048c73edbfa6d1a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/automatizaciones/builder/components/builder-chat.tsx:4", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/automatizaciones/builder/components/builder-chat.tsx:44"}, "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-7fa09998ca258bd9", "name": "Commented-code block (5 lines) in src/app/(dashboard)/automatizaciones/builder/components/session-history.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/automatizaciones/builder/components/session-history.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e7d169325e93638d", "name": "Commented-code block (5 lines) in src/app/(dashboard)/automatizaciones/builder/components/preview-nodes.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/automatizaciones/builder/components/preview-nodes.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-65a8f7b46ae3f097", "name": "Commented-code block (5 lines) in src/app/(dashboard)/confirmaciones/confirmaciones-panel.tsx:345", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/confirmaciones/confirmaciones-panel.tsx:345"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d72d323a7b77dbb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/contact-review/[token]/page.tsx:27", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/contact-review/[token]/page.tsx:27"}, "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-5cfb0a2b394f3d15", "name": "Commented-code block (5 lines) in src/app/actions/messages.ts:398", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/actions/messages.ts:398"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c0b84c73e0a9ac01", "name": "Commented-code block (9 lines) in src/app/actions/shopify-oauth.ts:20", "shortDescription": {"text": "Commented-code block (9 lines) in src/app/actions/shopify-oauth.ts:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c742752bd09bfb5", "name": "Commented-code block (15 lines) in src/app/actions/agent-content-editor.ts:8", "shortDescription": {"text": "Commented-code block (15 lines) in src/app/actions/agent-content-editor.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53100e302ddc25dc", "name": "Commented-code block (5 lines) in src/app/actions/shopify.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/actions/shopify.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cea21573111cf34a", "name": "Commented-code block (6 lines) in src/app/actions/meta-onboarding.ts:15", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/actions/meta-onboarding.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c28c20b231e5c36e", "name": "Commented-code block (8 lines) in src/app/actions/conversations.ts:409", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/actions/conversations.ts:409"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26e26d2e8a8efa3a", "name": "Commented-code block (5 lines) in src/app/actions/integrations.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/actions/integrations.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3fa6b3f35a790011", "name": "Commented-code block (11 lines) in src/app/actions/comandos.ts:7", "shortDescription": {"text": "Commented-code block (11 lines) in src/app/actions/comandos.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f9207cba04be5454", "name": "Commented-code block (5 lines) in src/app/actions/godentist.ts:126", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/actions/godentist.ts:126"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fc3772378d687667", "name": "Commented-code block (5 lines) in src/app/actions/bold.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/actions/bold.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-27504d03a5099c2e", "name": "Commented-code block (5 lines) in src/app/(marketing)/fonts.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/(marketing)/fonts.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-de3cddbad8c0e35d", "name": "Commented-code block (5 lines) in src/lib/carriers/envia-api.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/carriers/envia-api.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63c07f7b30a1a176", "name": "Legacy-named symbol `ui_inbox_v2` in src/lib/auth/inbox-v2.ts:7", "shortDescription": {"text": "Legacy-named symbol `ui_inbox_v2` in src/lib/auth/inbox-v2.ts:7"}, "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-453f8bafa6419219", "name": "Legacy-named symbol `ui_inbox_v2` in src/lib/auth/editorial-v3.ts:15", "shortDescription": {"text": "Legacy-named symbol `ui_inbox_v2` in src/lib/auth/editorial-v3.ts:15"}, "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-6147aeb28de01012", "name": "Legacy-named symbol `ui_dashboard_v2` in src/lib/auth/dashboard-v2.ts:9", "shortDescription": {"text": "Legacy-named symbol `ui_dashboard_v2` in src/lib/auth/dashboard-v2.ts:9"}, "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-e1b1eae490477bfb", "name": "Legacy-named symbol `ui_inbox_v2` in src/lib/auth/__tests__/editorial-v3.test.ts:68", "shortDescription": {"text": "Legacy-named symbol `ui_inbox_v2` in src/lib/auth/__tests__/editorial-v3.test.ts:68"}, "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-0b20aa955c354c4b", "name": "Commented-code block (9 lines) in src/lib/config-builder/templates/system-prompt.ts:5", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/config-builder/templates/system-prompt.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a6f967905adfd4b", "name": "Commented-code block (6 lines) in src/lib/config-builder/templates/suggested-actions.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/config-builder/templates/suggested-actions.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6dbea20b05b52532", "name": "Commented-code block (9 lines) in src/lib/config-builder/templates/tools.ts:5", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/config-builder/templates/tools.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-204d5f62214b90d3", "name": "Commented-code block (11 lines) in src/lib/config-builder/templates/validation.ts:9", "shortDescription": {"text": "Commented-code block (11 lines) in src/lib/config-builder/templates/validation.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-325f40f42328c7a3", "name": "Commented-code block (5 lines) in src/lib/config-builder/templates/types.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/config-builder/templates/types.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9cac05827296226d", "name": "Commented-code block (5 lines) in src/lib/config-builder/templates/__tests__/system-prompt.test.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/config-builder/templates/__tests__/system-prompt.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-673e8562fbdfccd7", "name": "Commented-code block (5 lines) in src/lib/media/__tests__/mp4-detect.test.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/media/__tests__/mp4-detect.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b94070254e174bbb", "name": "Commented-code block (7 lines) in src/lib/agent-forensics/audit-session-store.ts:199", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agent-forensics/audit-session-store.ts:199"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-058214a11d4a35f6", "name": "Commented-code block (5 lines) in src/lib/agent-forensics/auditor-prompt.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agent-forensics/auditor-prompt.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dfa082dfc5f7a189", "name": "Commented-code block (6 lines) in src/lib/agent-forensics/__tests__/audit-session-store.test.ts:385", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agent-forensics/__tests__/audit-session-store.test.ts:385"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b2a142621c65cc6", "name": "Commented-code block (6 lines) in src/lib/messenger/webhook-handler.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/messenger/webhook-handler.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-000080bd9d019fc3", "name": "Commented-code block (5 lines) in src/lib/messenger/__tests__/webhook-handler.test.ts:84", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/messenger/__tests__/webhook-handler.test.ts:84"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab4cc680ea059d17", "name": "Commented-code block (6 lines) in src/lib/observability/collector.ts:255", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/observability/collector.ts:255"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dbc899cf6e1b0c99", "name": "Commented-code block (8 lines) in src/lib/observability/repository.ts:261", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/observability/repository.ts:261"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff335379207cdcfd", "name": "Commented-code block (5 lines) in src/lib/observability/flush.ts:117", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/observability/flush.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-077038b85b279eaa", "name": "Commented-code block (5 lines) in src/lib/meta/api.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/meta/api.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bccec76c8cc5422f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/api.ts:31", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/api.ts:31"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e3554b71d34ce88b", "name": "Commented-code block (5 lines) in src/lib/meta/instagram-connect.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/meta/instagram-connect.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-032e1616faed66f8", "name": "Commented-code block (8 lines) in src/lib/meta/media.ts:6", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/meta/media.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab4d75393e7ecdae", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/media.ts:168", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/media.ts:168"}, "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-2d64503fb054e3e0", "name": "Commented-code block (5 lines) in src/lib/meta/credentials.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/meta/credentials.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3582d857faee0160", "name": "Commented-code block (10 lines) in src/lib/meta/messenger-api.ts:5", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/meta/messenger-api.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39dce99574493774", "name": "Commented-code block (5 lines) in src/lib/meta/constants.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/meta/constants.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a9f8e8a6912aafa", "name": "Commented-code block (11 lines) in src/lib/meta/instagram-api.ts:5", "shortDescription": {"text": "Commented-code block (11 lines) in src/lib/meta/instagram-api.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be06a78f3756ab78", "name": "Commented-code block (7 lines) in src/lib/meta/templates.ts:10", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/meta/templates.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-041dc36cfc95015b", "name": "Commented-code block (9 lines) in src/lib/meta/messenger-connect.ts:12", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/meta/messenger-connect.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-f5118773f9d89421", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/messenger-connect.ts:25", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/messenger-connect.ts:25"}, "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-6d5661553ac7284c", "name": "Commented-code block (6 lines) in src/lib/meta/embedded-signup.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/meta/embedded-signup.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d87c88532d4d7c9b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/embedded-signup.ts:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/embedded-signup.ts:12"}, "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-3fd142ab2f400fd5", "name": "Commented-code block (6 lines) in src/lib/meta/register-errors.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/meta/register-errors.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-97c4c034948073c6", "name": "Commented-code block (5 lines) in src/lib/meta/token.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/meta/token.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb05987ddf29fb78", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/__tests__/messenger-api.test.ts:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/__tests__/messenger-api.test.ts:12"}, "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-3c158ad47af75dfd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/__tests__/send.test.ts:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/__tests__/send.test.ts:11"}, "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-f697849f2df3ba38", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/__tests__/instagram-api.test.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/__tests__/instagram-api.test.ts:13"}, "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-4c2e041a0736c290", "name": "Commented-code block (6 lines) in src/lib/sandbox/sandbox-engine.ts:316", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/sandbox/sandbox-engine.ts:316"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44f2dca6770be43a", "name": "Commented-code block (7 lines) in src/lib/sandbox/types.ts:204", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/sandbox/types.ts:204"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c0374ad2f0598b9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/sandbox/types.ts:388", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/sandbox/types.ts:388"}, "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-a678b726a0580034", "name": "Commented-code block (6 lines) in src/lib/agents/session-manager.ts:137", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/session-manager.ts:137"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dc0f8e3d5fef3f31", "name": "Commented-code block (5 lines) in src/lib/agents/routing/cache.ts:97", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/routing/cache.ts:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e68d10eea88fd37", "name": "Commented-code block (5 lines) in src/lib/agents/routing/agent-module-registry.ts:99", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/routing/agent-module-registry.ts:99"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a95f0f7879a9ed9", "name": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/route.ts:18", "shortDescription": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/route.ts:18"}, "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-4086f7e530d4855e", "name": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/dry-run.ts:75", "shortDescription": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/dry-run.ts:75"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a378ebc23c6c6433", "name": "Commented-code block (9 lines) in src/lib/agents/routing/dry-run.ts:10", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/agents/routing/dry-run.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7875114f79e524c", "name": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/integrate.ts:13", "shortDescription": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/integrate.ts:13"}, "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-4ae07cd2abea10c8", "name": "Commented-code block (6 lines) in src/lib/agents/routing/__tests__/domain-extensions.test.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/routing/__tests__/domain-extensions.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-28aa6ded005e7596", "name": "Commented-code block (5 lines) in src/lib/agents/routing/__tests__/operators.test.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/routing/__tests__/operators.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67144b6b63922432", "name": "Commented-code block (9 lines) in src/lib/agents/routing/__tests__/schema.test.ts:5", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/agents/routing/__tests__/schema.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a410a0a75b52d61c", "name": "Commented-code block (6 lines) in src/lib/agents/routing/__tests__/fixtures.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/routing/__tests__/fixtures.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b2a3d82a908ed9d", "name": "Commented-code block (9 lines) in src/lib/agents/routing/__tests__/engine.test.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/agents/routing/__tests__/engine.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e89a4e50696cba3", "name": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/__tests__/integrate.test.ts:12", "shortDescription": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/__tests__/integrate.test.ts:12"}, "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-c2c9d70a23b9eb5f", "name": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/__tests__/domain.test.ts:119", "shortDescription": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/__tests__/domain.test.ts:119"}, "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-2fa0c49648a33ad4", "name": "Commented-code block (10 lines) in src/lib/agents/routing/__tests__/domain.test.ts:5", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/agents/routing/__tests__/domain.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5244ac980c7f5104", "name": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/__tests__/dry-run.test.ts:16", "shortDescription": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/__tests__/dry-run.test.ts:16"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dd00e4e43bec5d3c", "name": "Commented-code block (18 lines) in src/lib/agents/routing/__tests__/dry-run.test.ts:4", "shortDescription": {"text": "Commented-code block (18 lines) in src/lib/agents/routing/__tests__/dry-run.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd3034706ea720aa", "name": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/__tests__/route.test.ts:145", "shortDescription": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/__tests__/route.test.ts:145"}, "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-b58a8fb49ad18fc2", "name": "Commented-code block (6 lines) in src/lib/agents/routing/__tests__/route.test.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/routing/__tests__/route.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0dc9aa3c3d096459", "name": "Commented-code block (9 lines) in src/lib/agents/routing/__tests__/cache.test.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/agents/routing/__tests__/cache.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-231acda927cd7875", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/agents/media/image-classifier.ts:101", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/agents/media/image-classifier.ts:101"}, "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-79f203f8ebb4f00e", "name": "Commented-code block (6 lines) in src/lib/agents/shared/crm-mutation-tools/tasks.ts:111", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/shared/crm-mutation-tools/tasks.ts:111"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f7cfe0fbecaca5ca", "name": "Commented-code block (6 lines) in src/lib/agents/shared/crm-mutation-tools/notes.ts:98", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/shared/crm-mutation-tools/notes.ts: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-76a905c3986ec027", "name": "Commented-code block (9 lines) in src/lib/agents/shared/crm-mutation-tools/orders.ts:63", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/agents/shared/crm-mutation-tools/orders.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-ea5e8f05eb234301", "name": "Commented-code block (7 lines) in src/lib/agents/shared/crm-mutation-tools/contacts.ts:214", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/shared/crm-mutation-tools/contacts.ts:214"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-afa31865af8fe114", "name": "Commented-code block (5 lines) in src/lib/agents/somnio-recompra/somnio-recompra-agent.ts:253", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-recompra/somnio-recompra-agent.ts:253"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a8c7aeaf283cd646", "name": "Commented-code block (7 lines) in src/lib/agents/somnio-recompra/response-track.ts:28", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-recompra/response-track.ts:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2db71a41fcd73983", "name": "Commented-code block (6 lines) in src/lib/agents/somnio-pw-confirmation/sales-track.ts:134", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/somnio-pw-confirmation/sales-track.ts:134"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66c80264cd8829be", "name": "Commented-code block (6 lines) in src/lib/agents/somnio-pw-confirmation/transitions.ts:85", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/somnio-pw-confirmation/transitions.ts:85"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd124fb031ecb477", "name": "Legacy-named symbol `pedido_recibido_v2` in src/lib/agents/somnio-pw-confirmation/state.ts:128", "shortDescription": {"text": "Legacy-named symbol `pedido_recibido_v2` in src/lib/agents/somnio-pw-confirmation/state.ts:128"}, "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-03d0461080eca701", "name": "Commented-code block (8 lines) in src/lib/agents/somnio-pw-confirmation/somnio-pw-confirmation-agent.ts:265", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/agents/somnio-pw-confirmation/somnio-pw-confirmation-agent.ts:265"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e9f476174f9b0f1b", "name": "Commented-code block (5 lines) in src/lib/agents/somnio-pw-confirmation/response-track.ts:199", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-pw-confirmation/response-track.ts:199"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ac779ee248cf750", "name": "Legacy-named symbol `pedido_recibido_v2` in src/lib/agents/somnio-pw-confirmation/comprehension-prompt.ts:134", "shortDescription": {"text": "Legacy-named symbol `pedido_recibido_v2` in src/lib/agents/somnio-pw-confirmation/comprehension-prompt.ts:134"}, "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-9caf45c81886aa41", "name": "Commented-code block (5 lines) in src/lib/agents/somnio-pw-confirmation/__tests__/response-track.test.ts:26", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-pw-confirmation/__tests__/response-track.test.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-1d0bb0bfacc05b80", "name": "Commented-code block (7 lines) in src/lib/agents/varixcenter/sales-track.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/varixcenter/sales-track.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29186cdd451aef99", "name": "Commented-code block (8 lines) in src/lib/agents/varixcenter/transitions.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/agents/varixcenter/transitions.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2f8192d7f5d5110", "name": "Commented-code block (7 lines) in src/lib/agents/varixcenter/constants.ts:238", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/varixcenter/constants.ts:238"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c45d0b1659d8969c", "name": "Commented-code block (9 lines) in src/lib/agents/varixcenter/state.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/agents/varixcenter/state.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2651e8f98f426bc8", "name": "Commented-code block (7 lines) in src/lib/agents/varixcenter/comprehension-schema.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/varixcenter/comprehension-schema.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7fd3838740978bd3", "name": "Commented-code block (9 lines) in src/lib/agents/varixcenter/response-track.ts:6", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/agents/varixcenter/response-track.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b1c57ec896288b2", "name": "Commented-code block (8 lines) in src/lib/agents/varixcenter/comprehension-prompt.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/agents/varixcenter/comprehension-prompt.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2cfbe32f091b3bf0", "name": "Commented-code block (6 lines) in src/lib/agents/production/agent-config.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/production/agent-config.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1aca4c43b15280fc", "name": "Commented-code block (6 lines) in src/lib/agents/production/metrics.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/production/metrics.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b74326f382547f2", "name": "Legacy-named symbol `router_failed_fallback_legacy` in src/lib/agents/production/webhook-processor.ts:239", "shortDescription": {"text": "Legacy-named symbol `router_failed_fallback_legacy` in src/lib/agents/production/webhook-processor.ts:239"}, "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-633a3e536943c9b2", "name": "Commented-code block (6 lines) in src/lib/agents/production/webhook-processor.ts:214", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/production/webhook-processor.ts:214"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4fefe58892a05b20", "name": "Legacy-named symbol `fallback_legacy` in src/lib/agents/production/__tests__/webhook-processor-routing.test.ts:28", "shortDescription": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/production/__tests__/webhook-processor-routing.test.ts:28"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-460d0d51c5b89f66", "name": "Commented-code block (10 lines) in src/lib/agents/production/__tests__/webhook-processor-routing.test.ts:357", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/agents/production/__tests__/webhook-processor-routing.test.ts:357"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5fcc4728055c850e", "name": "Commented-code block (6 lines) in src/lib/agents/somnio/message-category-classifier.ts:64", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/somnio/message-category-classifier.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-1996bcac9d5c54ee", "name": "Commented-code block (5 lines) in src/lib/agents/somnio/somnio-agent.ts:714", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio/somnio-agent.ts:714"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f82c4c7e16dcc801", "name": "Commented-code block (5 lines) in src/lib/agents/somnio/__tests__/char-delay.test.ts:32", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio/__tests__/char-delay.test.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-d92a08a265d5253c", "name": "Commented-code block (7 lines) in src/lib/agents/godentist-fb-ig/sales-track.ts:86", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/godentist-fb-ig/sales-track.ts:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41af77d6774d36da", "name": "Commented-code block (6 lines) in src/lib/agents/engine/unified-engine.ts:448", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/engine/unified-engine.ts:448"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bebb00a79b0ec91b", "name": "Commented-code block (5 lines) in src/lib/agents/engine/v4-production-runner.ts:113", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/engine/v4-production-runner.ts: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-567ec5aab4ca0f88", "name": "Commented-code block (8 lines) in src/lib/agents/engine/v3-production-runner.ts:164", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/agents/engine/v3-production-runner.ts:164"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c0518ab7eff390a5", "name": "Commented-code block (6 lines) in src/lib/agents/engine/__tests__/v4-production-runner-restart.test.ts:52", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/engine/__tests__/v4-production-runner-restart.test.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-94f840598910792b", "name": "Commented-code block (7 lines) in src/lib/agents/engine/__tests__/v4-production-runner-pathb.test.ts:345", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/engine/__tests__/v4-production-runner-pathb.test.ts:345"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f20dcb6c7736ac69", "name": "Commented-code block (5 lines) in src/lib/agents/engine-adapters/production/v4-messaging-adapter.ts:162", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/engine-adapters/production/v4-messaging-adapter.ts:162"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4fcbd646c97a34ca", "name": "Commented-code block (6 lines) in src/lib/agents/engine-adapters/production/crm-writer-adapter.ts:257", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/engine-adapters/production/crm-writer-adapter.ts:257"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ebcbca86a0631ce", "name": "Commented-code block (5 lines) in src/lib/agents/engine-adapters/production/messaging.ts:303", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/engine-adapters/production/messaging.ts:303"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d0c0ed0e9b5a5fd9", "name": "Commented-code block (5 lines) in src/lib/agents/engine-adapters/production/index.ts:48", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/engine-adapters/production/index.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-649af059b1361608", "name": "Commented-code block (6 lines) in src/lib/agents/crm-writer/config.ts:47", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/crm-writer/config.ts: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-21fc2eb253a9ba9a", "name": "Commented-code block (7 lines) in src/lib/agents/crm-writer/two-step.ts:135", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/crm-writer/two-step.ts:135"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a13a3da5b0032e0", "name": "Commented-code block (5 lines) in src/lib/agents/somnio-v3/sales-track.ts:138", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v3/sales-track.ts:138"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d4601a4cb6a1bca", "name": "Commented-code block (7 lines) in src/lib/agents/interruption-system-v2/__tests__/restart-loop.test.ts:27", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/interruption-system-v2/__tests__/restart-loop.test.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b3d182db74ea997", "name": "Commented-code block (5 lines) in src/lib/agents/interruption-system-v2/__tests__/pending.test.ts:225", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/interruption-system-v2/__tests__/pending.test.ts:225"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a12465fd4f2d449", "name": "Commented-code block (12 lines) in src/lib/agents/somnio-v4/somnio-v4-agent.ts:64", "shortDescription": {"text": "Commented-code block (12 lines) in src/lib/agents/somnio-v4/somnio-v4-agent.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-20e468840d0c833e", "name": "Legacy-named symbol `fallback_legacy` in src/lib/agents/somnio-v4/index.ts:23", "shortDescription": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/somnio-v4/index.ts:23"}, "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-9a3dd3ee58dfc9ab", "name": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/sales-track.ts:141", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/sales-track.ts:141"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-567d4c9f305f87ae", "name": "Commented-code block (6 lines) in src/lib/agents/somnio-v4/state.ts:342", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/somnio-v4/state.ts:342"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f0c8ac8a24f1dba8", "name": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/sandbox-adapters.ts:121", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/sandbox-adapters.ts:121"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b42e29cecfbf1c1", "name": "Commented-code block (13 lines) in src/lib/agents/somnio-v4/comprehension.ts:54", "shortDescription": {"text": "Commented-code block (13 lines) in src/lib/agents/somnio-v4/comprehension.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-01fd8ad61902116c", "name": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/engine-v4.ts:55", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/engine-v4.ts:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-057d0a04ab37f0fc", "name": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/__tests__/comprehension-fallback-parity.test.ts:250", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/__tests__/comprehension-fallback-parity.test.ts:250"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-52e2b50a7ab70607", "name": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/__tests__/engine-v4-lock.test.ts:34", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/__tests__/engine-v4-lock.test.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-4e33ad2cecd2441f", "name": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/__tests__/smoke-hybrid.test.ts:534", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/__tests__/smoke-hybrid.test.ts:534"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2632b7b53aaa4dd7", "name": "Commented-code block (9 lines) in src/lib/agents/somnio-v4/__tests__/comprehension-gemini.test.ts:6", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/agents/somnio-v4/__tests__/comprehension-gemini.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41c347afb0f0976e", "name": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/__tests__/somnio-v4-agent.test.ts:54", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/__tests__/somnio-v4-agent.test.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-e9fdf91a1997abfd", "name": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/__tests__/state.test.ts:145", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/__tests__/state.test.ts: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-612e5e0404e1a1d8", "name": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/llm-fallback/config.ts:26", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/llm-fallback/config.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-1303dd8fda33aa87", "name": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/llm-fallback/saturation.ts:28", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/llm-fallback/saturation.ts:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb36be6e8a4e98b3", "name": "Commented-code block (8 lines) in src/lib/agents/somnio-v4/knowledge-base/serialize.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/agents/somnio-v4/knowledge-base/serialize.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d9109e62f118d4e", "name": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/knowledge-base/sync.ts:35", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/knowledge-base/sync.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-cde89756c2abebb0", "name": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/knowledge-base/__tests__/serialize.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/knowledge-base/__tests__/serialize.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12fd60a470c08a65", "name": "Commented-code block (9 lines) in src/lib/agents/somnio-v4/sub-loop/tooling-call.ts:148", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/agents/somnio-v4/sub-loop/tooling-call.ts:148"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45e49956493b2054", "name": "Legacy-named symbol `ckLegacy` in src/lib/agents/somnio-v4/sub-loop/index.ts:824", "shortDescription": {"text": "Legacy-named symbol `ckLegacy` in src/lib/agents/somnio-v4/sub-loop/index.ts:824"}, "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-9ca5b658bc444ce8", "name": "Commented-code block (8 lines) in src/lib/agents/somnio-v4/sub-loop/index.ts:27", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/agents/somnio-v4/sub-loop/index.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f7803a4a96ca49cd", "name": "Commented-code block (12 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/few-shots.test.ts:7", "shortDescription": {"text": "Commented-code block (12 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/few-shots.test.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c2e1e0cb984a0668", "name": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/output-schema.test.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/output-schema.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de84473ab812b070", "name": "Commented-code block (9 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/generation-context.test.ts:7", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/generation-context.test.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ad3f0de6e405afa", "name": "Commented-code block (10 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/kb-search-tool.test.ts:5", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/kb-search-tool.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a66ffefeced50b7c", "name": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/sub-loop-e2e.test.ts:14", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/sub-loop-e2e.test.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-341565358a6a840f", "name": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/safe-output.test.ts:9", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/safe-output.test.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9183d5fcd4b97b73", "name": "Commented-code block (12 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/compliance-check.test.ts:9", "shortDescription": {"text": "Commented-code block (12 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/compliance-check.test.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96c0160ae5844f6a", "name": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/core/turn-orchestrator.ts:55", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/core/turn-orchestrator.ts:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d82025d16efee3c1", "name": "Commented-code block (6 lines) in src/lib/agents/_shared/alerts.ts:39", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/agents/_shared/alerts.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-2928a61d2ab56c1d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/whatsapp/api.ts:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/whatsapp/api.ts:32"}, "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-1469069f5beec129", "name": "Commented-code block (5 lines) in src/lib/whatsapp/webhook-handler.ts:22", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/whatsapp/webhook-handler.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-9e671b0ee9232b56", "name": "Commented-code block (5 lines) in src/lib/whatsapp/templates-api.ts:210", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/whatsapp/templates-api.ts:210"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1985fc279789c08c", "name": "Commented-code block (5 lines) in src/lib/builder/system-prompt.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/builder/system-prompt.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-944833c49db471e6", "name": "Commented-code block (5 lines) in src/lib/builder/session-store.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/builder/session-store.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ffc68c730939e93a", "name": "Commented-code block (5 lines) in src/lib/builder/tools.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/builder/tools.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c0275f02d7c61c4", "name": "Commented-code block (6 lines) in src/lib/builder/validation.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/builder/validation.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-32738193fbc713fb", "name": "Commented-code block (5 lines) in src/lib/builder/diagram-generator.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/builder/diagram-generator.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4dc7db37f3de0b2e", "name": "Commented-code block (5 lines) in src/lib/builder/types.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/builder/types.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99b67327f3809406", "name": "Commented-code block (5 lines) in src/lib/bold/client.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/bold/client.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62c442638a612239", "name": "Commented-code block (6 lines) in src/lib/supabase/middleware.ts:32", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/supabase/middleware.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-45f49a4a414ca32d", "name": "Commented-code block (5 lines) in src/lib/supabase/client.ts:15", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/supabase/client.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a6c513e0e7b6a3e", "name": "Commented-code block (7 lines) in src/lib/supabase/admin.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/supabase/admin.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5c6e650e3881399a", "name": "Commented-code block (7 lines) in src/lib/channels/meta-whatsapp-sender.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/channels/meta-whatsapp-sender.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70f39e903cad9658", "name": "Commented-code block (7 lines) in src/lib/channels/registry.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/channels/registry.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ef711b00ac7c62c", "name": "Commented-code block (5 lines) in src/lib/channels/whatsapp-sender.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/channels/whatsapp-sender.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf9e51d102e2798c", "name": "Commented-code block (9 lines) in src/lib/channels/meta-instagram-sender.ts:6", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/channels/meta-instagram-sender.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-694904e6d2a51d18", "name": "Commented-code block (9 lines) in src/lib/channels/meta-facebook-sender.ts:6", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/channels/meta-facebook-sender.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99ff83643e90d41a", "name": "Commented-code block (7 lines) in src/lib/channels/types.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/channels/types.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce6827c1da571580", "name": "Commented-code block (5 lines) in src/lib/automations/variable-resolver.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/automations/variable-resolver.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c84e2f66ac8572a6", "name": "Commented-code block (5 lines) in src/lib/automations/action-executor.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/automations/action-executor.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8332b872c23c0c7b", "name": "Commented-code block (5 lines) in src/lib/automations/constants.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/automations/constants.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c79de4b99a43f70f", "name": "Commented-code block (5 lines) in src/lib/automations/trigger-emitter.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/automations/trigger-emitter.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef80f32f6919db65", "name": "Commented-code block (5 lines) in src/lib/automations/condition-evaluator.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/automations/condition-evaluator.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfa25ac7d1588b96", "name": "Commented-code block (5 lines) in src/lib/automations/types.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/automations/types.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc586941c50f93ef", "name": "Commented-code block (5 lines) in src/lib/pdf/generate-envia-excel.ts:67", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/pdf/generate-envia-excel.ts:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60d06356d8ff2e76", "name": "Commented-code block (6 lines) in src/lib/instagram/webhook-handler.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/instagram/webhook-handler.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35438b5b2af19b64", "name": "Commented-code block (5 lines) in src/lib/instagram/__tests__/webhook-handler.test.ts:86", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/instagram/__tests__/webhook-handler.test.ts:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7899dd5aca193c5b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/ocr/extract-guide-data.ts:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/ocr/extract-guide-data.ts:36"}, "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-132735d68c7ee474", "name": "Commented-code block (7 lines) in src/lib/shopify/oauth-config.ts:12", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/shopify/oauth-config.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-3c0f9c6fca59f20a", "name": "Commented-code block (5 lines) in src/lib/shopify/connection-test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/shopify/connection-test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-104aea53a273a32d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/shopify/connection-test.ts:70", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/shopify/connection-test.ts:70"}, "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-fc9e81016ab47b65", "name": "Commented-code block (7 lines) in src/lib/shopify/oauth.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/shopify/oauth.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c6339bc4bb001080", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/shopify/oauth.ts:401", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/shopify/oauth.ts:401"}, "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-6fddc62e79520e02", "name": "Commented-code block (6 lines) in src/lib/shopify/phone-distance.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/shopify/phone-distance.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9267d80430c5dfdf", "name": "Commented-code block (6 lines) in src/lib/editorial/tag-variant.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/editorial/tag-variant.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-634b12c437374db6", "name": "Commented-code block (5 lines) in src/lib/domain/messages-send-idempotent.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/messages-send-idempotent.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10170f2acd358cb9", "name": "Commented-code block (6 lines) in src/lib/domain/agent-templates.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/domain/agent-templates.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2c4e840302c9ad3", "name": "Commented-code block (5 lines) in src/lib/domain/agent-knowledge-base.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/agent-knowledge-base.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c40b6ba0a0851323", "name": "Commented-code block (8 lines) in src/lib/domain/tags.ts:6", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/domain/tags.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff9ee44f65382d7d", "name": "Commented-code block (5 lines) in src/lib/domain/workspace-settings.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/workspace-settings.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16f4ac4626dc0d23", "name": "Commented-code block (5 lines) in src/lib/domain/messages.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/messages.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f7c0ba26239b3ed", "name": "Legacy-named symbol `fallback_legacy` in src/lib/domain/routing.ts:85", "shortDescription": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/domain/routing.ts:85"}, "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-cd1b6eddf813b3d9", "name": "Commented-code block (5 lines) in src/lib/domain/meta-accounts.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/meta-accounts.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e02ac49d0eb6c8e9", "name": "Commented-code block (5 lines) in src/lib/domain/tasks.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/tasks.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac2fc61987d083ff", "name": "Commented-code block (5 lines) in src/lib/domain/robot-jobs.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/robot-jobs.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6fa957776625a6be", "name": "Commented-code block (6 lines) in src/lib/domain/crm-mutation-idempotency.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/domain/crm-mutation-idempotency.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7be7d82284fcd5fb", "name": "Commented-code block (5 lines) in src/lib/domain/sms.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/sms.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70a2879402faed91", "name": "Commented-code block (12 lines) in src/lib/domain/whatsapp-history-import.ts:4", "shortDescription": {"text": "Commented-code block (12 lines) in src/lib/domain/whatsapp-history-import.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a1a287f31f329f0", "name": "Commented-code block (5 lines) in src/lib/domain/notes.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/notes.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a911a4f17397bb3", "name": "Commented-code block (6 lines) in src/lib/domain/carrier-events.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/domain/carrier-events.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b21a04257049bab7", "name": "Commented-code block (5 lines) in src/lib/domain/client-activation.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/client-activation.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fac5ae9a31ce52cd", "name": "Commented-code block (5 lines) in src/lib/domain/conversations.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/conversations.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62b9802de367bee4", "name": "Commented-code block (8 lines) in src/lib/domain/integrations.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/domain/integrations.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63f304e40203972a", "name": "Commented-code block (5 lines) in src/lib/domain/orders.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/orders.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6545fa506a35748a", "name": "Commented-code block (5 lines) in src/lib/domain/custom-fields.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/custom-fields.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f63deba6e9d54af1", "name": "Commented-code block (6 lines) in src/lib/domain/carrier-configs.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/domain/carrier-configs.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c9f900ebaa13beab", "name": "Commented-code block (5 lines) in src/lib/domain/contacts.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/contacts.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bfea3a846424567e", "name": "Commented-code block (5 lines) in src/lib/domain/carrier-coverage.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/carrier-coverage.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29aa2e540136a63e", "name": "Commented-code block (6 lines) in src/lib/domain/contact-reviews.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/domain/contact-reviews.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0af966108168d58a", "name": "Commented-code block (7 lines) in src/lib/domain/platform-config.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/domain/platform-config.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8698b7121596800", "name": "Commented-code block (12 lines) in src/lib/domain/whatsapp-templates.ts:5", "shortDescription": {"text": "Commented-code block (12 lines) in src/lib/domain/whatsapp-templates.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e705302c7faaac13", "name": "Commented-code block (5 lines) in src/lib/domain/pipelines.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/pipelines.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-672b769622190f18", "name": "Commented-code block (5 lines) in src/lib/domain/__tests__/messages-transcription.test.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/__tests__/messages-transcription.test.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-512a35dc8809c125", "name": "Commented-code block (12 lines) in src/lib/domain/__tests__/agent-knowledge-base.test.ts:5", "shortDescription": {"text": "Commented-code block (12 lines) in src/lib/domain/__tests__/agent-knowledge-base.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-76e1bda124db16ce", "name": "Commented-code block (8 lines) in src/lib/domain/__tests__/resolve-or-create-contact.test.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/domain/__tests__/resolve-or-create-contact.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e79e8bfe79110db", "name": "Commented-code block (6 lines) in src/lib/domain/__tests__/orders-duplicate-products.test.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/domain/__tests__/orders-duplicate-products.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04233790ba10b98d", "name": "Commented-code block (10 lines) in src/lib/domain/__tests__/agent-templates.test.ts:10", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/domain/__tests__/agent-templates.test.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5c24bbe31c1ec082", "name": "Commented-code block (13 lines) in src/lib/domain/__tests__/whatsapp-history-import.test.ts:6", "shortDescription": {"text": "Commented-code block (13 lines) in src/lib/domain/__tests__/whatsapp-history-import.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-90f91603c1985f7d", "name": "Commented-code block (6 lines) in src/lib/domain/__tests__/conversations.test.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/domain/__tests__/conversations.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-edb7754f3ad00eb3", "name": "Commented-code block (5 lines) in src/lib/domain/push/register-token.ts:10", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/domain/push/register-token.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7f392dd0c7422e8", "name": "Commented-code block (7 lines) in src/lib/domain/push/send-push.ts:14", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/domain/push/send-push.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-849db60721e28f5e", "name": "Commented-code block (9 lines) in src/lib/domain/conversations/set-bot-mode.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/domain/conversations/set-bot-mode.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-25457175b64b56bd", "name": "Commented-code block (8 lines) in src/lib/domain/varix-clinic/booking.ts:8", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/domain/varix-clinic/booking.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-059b76c3e1246bf4", "name": "Commented-code block (6 lines) in src/lib/domain/varix-clinic/constants.ts:10", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/domain/varix-clinic/constants.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8625a201a42a001", "name": "Commented-code block (7 lines) in src/lib/domain/varix-clinic/client.ts:25", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/domain/varix-clinic/client.ts:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-01cc8bdf74c8fcd6", "name": "Commented-code block (7 lines) in src/lib/domain/varix-clinic/availability.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/domain/varix-clinic/availability.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4cde60d3b2345968", "name": "Commented-code block (11 lines) in src/lib/domain/varix-clinic/__tests__/booking.test.ts:5", "shortDescription": {"text": "Commented-code block (11 lines) in src/lib/domain/varix-clinic/__tests__/booking.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d86630e183f8da89", "name": "Commented-code block (8 lines) in src/lib/domain/varix-clinic/__tests__/availability.test.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/domain/varix-clinic/__tests__/availability.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6201caf28df23ef0", "name": "Commented-code block (5 lines) in src/hooks/use-conversations.ts:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/hooks/use-conversations.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6b6724f63188686c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/use-conversations.ts:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/use-conversations.ts:22"}, "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-558b62d36cbfed80", "name": "Commented-code block (7 lines) in src/hooks/use-messages.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/hooks/use-messages.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-617026b79e3c5ba1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/use-messages.ts:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/use-messages.ts:63"}, "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-484d32fb074df13b", "name": "Commented-code block (6 lines) in src/hooks/use-robot-job-progress.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in src/hooks/use-robot-job-progress.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d889078775a3ec1", "name": "Commented-code block (5 lines) in src/inngest/functions/v2-lock-cleanup-cron.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/inngest/functions/v2-lock-cleanup-cron.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b77b8d966d26a21d", "name": "Commented-code block (5 lines) in src/inngest/functions/mobile-push-on-new-message.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/inngest/functions/mobile-push-on-new-message.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4ce4caaef5011f97", "name": "Legacy-named symbol `fallback_legacy` in src/inngest/functions/routing-audit-cleanup.ts:6", "shortDescription": {"text": "Legacy-named symbol `fallback_legacy` in src/inngest/functions/routing-audit-cleanup.ts:6"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1f7e90f19e7875aa", "name": "Commented-code block (11 lines) in src/inngest/functions/knowledge-sync-v4.ts:79", "shortDescription": {"text": "Commented-code block (11 lines) in src/inngest/functions/knowledge-sync-v4.ts:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4311a3404e0f876f", "name": "Commented-code block (8 lines) in src/inngest/functions/observability-purge.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/inngest/functions/observability-purge.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b77246995cbfd6b4", "name": "Commented-code block (5 lines) in src/inngest/functions/agent-timers-v3.ts:321", "shortDescription": {"text": "Commented-code block (5 lines) in src/inngest/functions/agent-timers-v3.ts:321"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b642f3c0d7d287a1", "name": "Commented-code block (6 lines) in src/inngest/functions/pw-confirmation-preload-and-invoke.ts:268", "shortDescription": {"text": "Commented-code block (6 lines) in src/inngest/functions/pw-confirmation-preload-and-invoke.ts:268"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71dcf739e5159c0a", "name": "Commented-code block (7 lines) in src/inngest/functions/agent-timers-v4.ts:422", "shortDescription": {"text": "Commented-code block (7 lines) in src/inngest/functions/agent-timers-v4.ts:422"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-30e8873757b052c4", "name": "Commented-code block (5 lines) in src/inngest/functions/agent-production.ts:25", "shortDescription": {"text": "Commented-code block (5 lines) in src/inngest/functions/agent-production.ts:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-56a7957e4c593d31", "name": "Commented-code block (6 lines) in src/inngest/functions/recompra-preload-context.ts:29", "shortDescription": {"text": "Commented-code block (6 lines) in src/inngest/functions/recompra-preload-context.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-d7f7362d3a9afe62", "name": "Commented-code block (6 lines) in src/inngest/functions/crm-bot-expire-proposals.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/inngest/functions/crm-bot-expire-proposals.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c9a6702fd4f23acf", "name": "Commented-code block (5 lines) in src/inngest/functions/close-stale-sessions.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/inngest/functions/close-stale-sessions.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-934b2c86732b1942", "name": "Commented-code block (6 lines) in src/inngest/functions/robot-orchestrator.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in src/inngest/functions/robot-orchestrator.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-48f358970762b7e4", "name": "Commented-code block (5 lines) in src/inngest/functions/automation-runner.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/inngest/functions/automation-runner.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3078eb54c13ce726", "name": "Commented-code block (6 lines) in src/inngest/functions/__tests__/v2-lock-cleanup-cron.test.ts:21", "shortDescription": {"text": "Commented-code block (6 lines) in src/inngest/functions/__tests__/v2-lock-cleanup-cron.test.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-75623ef3131ec894", "name": "Commented-code block (5 lines) in src/inngest/functions/__tests__/automation-runner-cascade-capped.test.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/inngest/functions/__tests__/automation-runner-cascade-capped.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c2338d71c556fc3e", "name": "Commented-code block (5 lines) in src/inngest/functions/__tests__/agent-production-lock-event.test.ts:334", "shortDescription": {"text": "Commented-code block (5 lines) in src/inngest/functions/__tests__/agent-production-lock-event.test.ts:334"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-364d48e64086ef52", "name": "Commented-code block (5 lines) in src/inngest/functions/__tests__/automation-runner-killswitch.test.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/inngest/functions/__tests__/automation-runner-killswitch.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-570aac874e441535", "name": "Commented-code block (6 lines) in e2e/auth.spec.ts:37", "shortDescription": {"text": "Commented-code block (6 lines) in e2e/auth.spec.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-2d92186ffbe2a613", "name": "Legacy-named symbol `ui_inbox_v2` in e2e/fixtures/editorial-v3.ts:14", "shortDescription": {"text": "Legacy-named symbol `ui_inbox_v2` in e2e/fixtures/editorial-v3.ts:14"}, "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-49936ef6f227ee79", "name": "Commented-code block (15 lines) in e2e/fixtures/editorial-v3.ts:7", "shortDescription": {"text": "Commented-code block (15 lines) in e2e/fixtures/editorial-v3.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e026dfcacf927c43", "name": "Commented-code block (6 lines) in e2e/visual/editorial-fidelity.spec.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in e2e/visual/editorial-fidelity.spec.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-98fc9de6a4fc2b2f", "name": "Legacy-named symbol `ui_inbox_v2` in e2e/visual/regla6-regression.spec.ts:6", "shortDescription": {"text": "Legacy-named symbol `ui_inbox_v2` in e2e/visual/regla6-regression.spec.ts:6"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-90f0dda09a6d7f0b", "name": "Commented-code block (7 lines) in e2e/visual/regla6-regression.spec.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in e2e/visual/regla6-regression.spec.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-379a33678ae64747", "name": "77 env vars used in code but missing from .env.example", "shortDescription": {"text": "77 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ANTHROPIC_API_KEY`, `ANTHROPIC_API_KEY_TOOLS`, `CAMPAIGN_PATIENTS_FILE`, `CAMPAIGN_STATE_FILE`, `CI`, `DEFAULT_TEMPLATE_HEADER_IMAGE`, `DIAG_EMAIL`, `DIAG_PATH` + 69 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a0d3864ea79c5e5f", "name": "Dangling fetch: POST /api/config-builder/templates/upload (src/app/(dashboard)/configuracion/whatsapp/templates/builder/", "shortDescription": {"text": "Dangling fetch: POST /api/config-builder/templates/upload (src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/chat-pane.tsx:172)"}, "fullDescription": {"text": "`src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/chat-pane.tsx:172` calls `POST /api/config-builder/templates/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/config-builder/templates/upload`\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-10424c627555c086", "name": "Dangling fetch: POST /api/config-builder/templates/upload (src/app/(dashboard)/configuracion/whatsapp/templates/builder/", "shortDescription": {"text": "Dangling fetch: POST /api/config-builder/templates/upload (src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/image-uploader.tsx:65)"}, "fullDescription": {"text": "`src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/image-uploader.tsx:65` calls `POST /api/config-builder/templates/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/config-builder/templates/upload`\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-edf267e0affd58d3", "name": "Dangling fetch: GET /api/builder/sessions (src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/templ", "shortDescription": {"text": "Dangling fetch: GET /api/builder/sessions (src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/template-builder-layout.tsx:239)"}, "fullDescription": {"text": "`src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/template-builder-layout.tsx:239` calls `GET /api/builder/sessions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/builder/sessions`\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-5bd1e2591a547d38", "name": "Dangling fetch: DELETE /api/builder/sessions?sessionId=${sessionId} (src/app/(dashboard)/configuracion/whatsapp/template", "shortDescription": {"text": "Dangling fetch: DELETE /api/builder/sessions?sessionId=${sessionId} (src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/template-builder-layout.tsx:261)"}, "fullDescription": {"text": "`src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/template-builder-layout.tsx:261` calls `DELETE /api/builder/sessions?sessionId=${sessionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/builder/sessions`\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-df40663028410344", "name": "Dangling fetch: POST /api/config-builder/templates/upload (src/app/(dashboard)/agentes/content-editor/_components/Conten", "shortDescription": {"text": "Dangling fetch: POST /api/config-builder/templates/upload (src/app/(dashboard)/agentes/content-editor/_components/ContentImageUploader.tsx:58)"}, "fullDescription": {"text": "`src/app/(dashboard)/agentes/content-editor/_components/ContentImageUploader.tsx:58` calls `POST /api/config-builder/templates/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/config-builder/templates/upload`\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-711ff48d893fc725", "name": "Dangling fetch: GET /api/sandbox/crm-agents (src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:102)", "shortDescription": {"text": "Dangling fetch: GET /api/sandbox/crm-agents (src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:102)"}, "fullDescription": {"text": "`src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:102` calls `GET /api/sandbox/crm-agents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sandbox/crm-agents`\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-7942085e50bfd770", "name": "Dangling fetch: POST /api/sandbox/process (src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:217)", "shortDescription": {"text": "Dangling fetch: POST /api/sandbox/process (src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:217)"}, "fullDescription": {"text": "`src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:217` calls `POST /api/sandbox/process` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sandbox/process`\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-aebb22c4a9895aaa", "name": "Dangling fetch: POST /api/sandbox/process (src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:382)", "shortDescription": {"text": "Dangling fetch: POST /api/sandbox/process (src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:382)"}, "fullDescription": {"text": "`src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:382` calls `POST /api/sandbox/process` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sandbox/process`\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-f3bc1a99992c707e", "name": "Dangling fetch: GET /api/builder/sessions (src/app/(dashboard)/automatizaciones/builder/components/session-history.tsx:7", "shortDescription": {"text": "Dangling fetch: GET /api/builder/sessions (src/app/(dashboard)/automatizaciones/builder/components/session-history.tsx:77)"}, "fullDescription": {"text": "`src/app/(dashboard)/automatizaciones/builder/components/session-history.tsx:77` calls `GET /api/builder/sessions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/builder/sessions`\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-dbc0dd4b073a4da8", "name": "Dangling fetch: DELETE /api/builder/sessions?sessionId=${sessionId} (src/app/(dashboard)/automatizaciones/builder/compon", "shortDescription": {"text": "Dangling fetch: DELETE /api/builder/sessions?sessionId=${sessionId} (src/app/(dashboard)/automatizaciones/builder/components/session-history.tsx:99)"}, "fullDescription": {"text": "`src/app/(dashboard)/automatizaciones/builder/components/session-history.tsx:99` calls `DELETE /api/builder/sessions?sessionId=${sessionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/builder/sessions`\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-dd74c78288fe0075", "name": "Dangling fetch: POST /api/contact-review/${token} (src/app/contact-review/[token]/page.tsx:27)", "shortDescription": {"text": "Dangling fetch: POST /api/contact-review/${token} (src/app/contact-review/[token]/page.tsx:27)"}, "fullDescription": {"text": "`src/app/contact-review/[token]/page.tsx:27` calls `POST /api/contact-review/${token}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contact-review/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a3174fe3e028643", "name": "Dangling fetch: POST /api/sandbox/save-session (src/lib/sandbox/sandbox-session.ts:57)", "shortDescription": {"text": "Dangling fetch: POST /api/sandbox/save-session (src/lib/sandbox/sandbox-session.ts:57)"}, "fullDescription": {"text": "`src/lib/sandbox/sandbox-session.ts:57` calls `POST /api/sandbox/save-session` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sandbox/save-session`\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-b67310a39827395f", "name": "Dangling fetch: POST /api/sandbox/delete-session (src/lib/sandbox/sandbox-session.ts:82)", "shortDescription": {"text": "Dangling fetch: POST /api/sandbox/delete-session (src/lib/sandbox/sandbox-session.ts:82)"}, "fullDescription": {"text": "`src/lib/sandbox/sandbox-session.ts:82` calls `POST /api/sandbox/delete-session` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sandbox/delete-session`\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-ea648fdd3648f5f3", "name": "Dangling fetch: POST https://${opts.shop}/admin/api/${SHOPIFY_API_VERSION}/webhooks.json (src/lib/shopify/oauth.ts:401)", "shortDescription": {"text": "Dangling fetch: POST https://${opts.shop}/admin/api/${SHOPIFY_API_VERSION}/webhooks.json (src/lib/shopify/oauth.ts:401)"}, "fullDescription": {"text": "`src/lib/shopify/oauth.ts:401` calls `POST https://${opts.shop}/admin/api/${SHOPIFY_API_VERSION}/webhooks.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/<p>/admin/api/<p>/webhooks.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4756b4c4da7d2088", "name": "Unused endpoint: GET /api/health", "shortDescription": {"text": "Unused endpoint: GET /api/health"}, "fullDescription": {"text": "`bold-robot/server.js` declares `GET /api/health` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0fba7deffcb6c9c7", "name": "Unused endpoint: POST /api/create-link", "shortDescription": {"text": "Unused endpoint: POST /api/create-link"}, "fullDescription": {"text": "`bold-robot/server.js` declares `POST /api/create-link` 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-1348eb18bbbeb69a", "name": "Unused endpoint: POST /api/submit-code", "shortDescription": {"text": "Unused endpoint: POST /api/submit-code"}, "fullDescription": {"text": "`bold-robot/server.js` declares `POST /api/submit-code` 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-57aa6bcc8a1d52a1", "name": "Unused endpoint: GET /api/login-status", "shortDescription": {"text": "Unused endpoint: GET /api/login-status"}, "fullDescription": {"text": "`bold-robot/server.js` declares `GET /api/login-status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f236445ab4f4711b", "name": "Unused endpoint: POST /api/clear-session", "shortDescription": {"text": "Unused endpoint: POST /api/clear-session"}, "fullDescription": {"text": "`bold-robot/server.js` declares `POST /api/clear-session` 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-9f8d493d7bb86156", "name": "Unused endpoint: GET /api/screenshots", "shortDescription": {"text": "Unused endpoint: GET /api/screenshots"}, "fullDescription": {"text": "`bold-robot/server.js` declares `GET /api/screenshots` 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-75fb5368f9abdbdc", "name": "Unused endpoint: GET /api/screenshots/:name", "shortDescription": {"text": "Unused endpoint: GET /api/screenshots/:name"}, "fullDescription": {"text": "`bold-robot/server.js` declares `GET /api/screenshots/:name` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f8d87b26202e28b6", "name": "Unused endpoint: POST /api/mobile/orders", "shortDescription": {"text": "Unused endpoint: POST /api/mobile/orders"}, "fullDescription": {"text": "`apps/mobile/src/components/crm-panel/ContactPanelDrawer.tsx` declares `POST /api/mobile/orders` 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-e8c9e0262fa5f948", "name": "Unused endpoint: POST /api/mobile/push/register", "shortDescription": {"text": "Unused endpoint: POST /api/mobile/push/register"}, "fullDescription": {"text": "`apps/mobile/src/lib/notifications/register.ts` declares `POST /api/mobile/push/register` 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-876479b97a62a756", "name": "Unused endpoint: POST /api/scrape-appointments", "shortDescription": {"text": "Unused endpoint: POST /api/scrape-appointments"}, "fullDescription": {"text": "`godentist/robot-godentist/src/api/server.ts` declares `POST /api/scrape-appointments` 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-dbe57d86d77cf95e", "name": "Unused endpoint: POST /api/confirm-appointment", "shortDescription": {"text": "Unused endpoint: POST /api/confirm-appointment"}, "fullDescription": {"text": "`godentist/robot-godentist/src/api/server.ts` declares `POST /api/confirm-appointment` 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-408ab389eabb6a1c", "name": "Unused endpoint: POST /api/check-availability", "shortDescription": {"text": "Unused endpoint: POST /api/check-availability"}, "fullDescription": {"text": "`godentist/robot-godentist/src/api/server.ts` declares `POST /api/check-availability` 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-35397b007b8d0eb7", "name": "Unused endpoint: POST /api/crear-pedidos-batch", "shortDescription": {"text": "Unused endpoint: POST /api/crear-pedidos-batch"}, "fullDescription": {"text": "`robot-coordinadora/src/api/server.ts` declares `POST /api/crear-pedidos-batch` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c4961dea563fcc62", "name": "Unused endpoint: POST /api/buscar-guias", "shortDescription": {"text": "Unused endpoint: POST /api/buscar-guias"}, "fullDescription": {"text": "`robot-coordinadora/src/api/server.ts` declares `POST /api/buscar-guias` 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/23485"}, "properties": {"repository": "yuseponub/morfx", "repoUrl": "https://github.com/yuseponub/morfx", "branch": "main"}, "results": [{"ruleId": "scanner-6bbd43c1a7fe120c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/mobile/src/lib/notifications/register.ts:56"}, "properties": {"repobilityId": "786c119a8337c50c", "scanner": "scanner-primary", "fingerprint": "6bbd43c1a7fe120c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2d4473625b9595c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/mobile/src/lib/db/index.ts:38"}, "properties": {"repobilityId": "b44b77be10a4a248", "scanner": "scanner-primary", "fingerprint": "2d4473625b9595c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ddb93b8887a934cf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_robot-inbox-nav.ts:49"}, "properties": {"repobilityId": "f2670db50a963df3", "scanner": "scanner-primary", "fingerprint": "ddb93b8887a934cf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2ef399aaa23c4337", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-token-order.ts:43"}, "properties": {"repobilityId": "3809b2f5680c3ae4", "scanner": "scanner-primary", "fingerprint": "2ef399aaa23c4337", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-19c14d4bc783b38e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/godentist-blast-experiment.ts:257"}, "properties": {"repobilityId": "c077a7e8981d5174", "scanner": "scanner-primary", "fingerprint": "19c14d4bc783b38e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-94ddf2d79583ca20", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-realtime-bisect.ts:34"}, "properties": {"repobilityId": "80cbcd90297ea674", "scanner": "scanner-primary", "fingerprint": "94ddf2d79583ca20", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-67a539a3d91debcd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/import-whatsapp-history.ts:106"}, "properties": {"repobilityId": "2b90475c63a753b2", "scanner": "scanner-primary", "fingerprint": "67a539a3d91debcd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c8e3401624ca120e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-realtime-authed.ts:27"}, "properties": {"repobilityId": "8e675a53fc60fcb7", "scanner": "scanner-primary", "fingerprint": "c8e3401624ca120e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fd645999e86511e4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_repro-gemini-schema.ts:38"}, "properties": {"repobilityId": "bd1474529b43c84a", "scanner": "scanner-primary", "fingerprint": "fd645999e86511e4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-91bababe8ccbd475", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/varix-conversations-discovery.ts:22"}, "properties": {"repobilityId": "1de299f3be72ae9d", "scanner": "scanner-primary", "fingerprint": "91bababe8ccbd475", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dc3f23cec29f0e04", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/replay-failed-webhooks.ts:38"}, "properties": {"repobilityId": "3548b6129da664a9", "scanner": "scanner-primary", "fingerprint": "dc3f23cec29f0e04", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-11d7be8615c133c3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_smoke-ig.ts:32"}, "properties": {"repobilityId": "47cb1285f86dafe1", "scanner": "scanner-primary", "fingerprint": "11d7be8615c133c3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a734d19a5f107933", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/parse-godentist-xlsx-2019-2022.ts:55"}, "properties": {"repobilityId": "24681787c29ee473", "scanner": "scanner-primary", "fingerprint": "a734d19a5f107933", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ace58e1fdf0d8bfc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-blast-sms-5-team.ts:73"}, "properties": {"repobilityId": "4ad720c435742938", "scanner": "scanner-primary", "fingerprint": "ace58e1fdf0d8bfc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0004d5c66ff63255", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-ws-list.ts:8"}, "properties": {"repobilityId": "f93765270816d9ec", "scanner": "scanner-primary", "fingerprint": "0004d5c66ff63255", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ff1c5e626f50f13c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-browser-repro2.ts:48"}, "properties": {"repobilityId": "591d466396c55693", "scanner": "scanner-primary", "fingerprint": "ff1c5e626f50f13c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a4b221dfb4884b12", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reembed-kb-v4.ts:45"}, "properties": {"repobilityId": "e420a48c9e9318bf", "scanner": "scanner-primary", "fingerprint": "a4b221dfb4884b12", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2e491c10f44b952f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/varix-conversations-prep.ts:35"}, "properties": {"repobilityId": "09ab890efc550140", "scanner": "scanner-primary", "fingerprint": "2e491c10f44b952f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1f6b1781e83f6f70", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_v4-probe-comprehension.ts:16"}, "properties": {"repobilityId": "4e906210d40cce1c", "scanner": "scanner-primary", "fingerprint": "1f6b1781e83f6f70", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ef54e5c328ffe6dd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_meta-inspect-msgs.ts:20"}, "properties": {"repobilityId": "8dd0e32a494a79ad", "scanner": "scanner-primary", "fingerprint": "ef54e5c328ffe6dd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d7f6dd87b549c65c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-protocol.ts:39"}, "properties": {"repobilityId": "cb877be11313ea42", "scanner": "scanner-primary", "fingerprint": "d7f6dd87b549c65c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1ef28bf25e59a259", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_meta-register-number.ts:34"}, "properties": {"repobilityId": "82ca9a9a8f1592df", "scanner": "scanner-primary", "fingerprint": "1ef28bf25e59a259", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-479a3554422280cf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/godentist-prima-promocion-campaign.ts:191"}, "properties": {"repobilityId": "f146a703e3d151d3", "scanner": "scanner-primary", "fingerprint": "479a3554422280cf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-541482cb0f5c5224", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-browser-repro.ts:36"}, "properties": {"repobilityId": "93abc7ea8675baf5", "scanner": "scanner-primary", "fingerprint": "541482cb0f5c5224", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-90121e3a15a9110f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-realtime-delivery.ts:29"}, "properties": {"repobilityId": "16ccb776286343a7", "scanner": "scanner-primary", "fingerprint": "90121e3a15a9110f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cb54c51038cdd4c8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_v4-probe-generation.ts:43"}, "properties": {"repobilityId": "6f7f0aec5012c008", "scanner": "scanner-primary", "fingerprint": "cb54c51038cdd4c8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d6fdba6cc96b0882", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-browser-repro-local.ts:51"}, "properties": {"repobilityId": "1342be4ca6043d80", "scanner": "scanner-primary", "fingerprint": "d6fdba6cc96b0882", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d766ca99a594c0d2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/varix-conversations-export.ts:40"}, "properties": {"repobilityId": "1f2567f9fbe18e9a", "scanner": "scanner-primary", "fingerprint": "d766ca99a594c0d2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-51eea21659492cc9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke-duplicate-order-products-integrity.ts:27"}, "properties": {"repobilityId": "0c3673d6640364ef", "scanner": "scanner-primary", "fingerprint": "51eea21659492cc9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ea5c59924f3f511f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/knowledge-sync.ts:110"}, "properties": {"repobilityId": "b08d71d49256a785", "scanner": "scanner-primary", "fingerprint": "ea5c59924f3f511f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e3887a57a7bee5a9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-blast-experiment.ts:147"}, "properties": {"repobilityId": "d256a0990144fabf", "scanner": "scanner-primary", "fingerprint": "e3887a57a7bee5a9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9bfbc8ea9fabbcfd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-realtime-latency.ts:28"}, "properties": {"repobilityId": "fa495fc2207250c5", "scanner": "scanner-primary", "fingerprint": "9bfbc8ea9fabbcfd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c941be2dcc88cd09", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-tags.ts:26"}, "properties": {"repobilityId": "f84c7ab55b2abb96", "scanner": "scanner-primary", "fingerprint": "c941be2dcc88cd09", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-20a9a5c449d12763", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/_diag-drive-noop.ts:30"}, "properties": {"repobilityId": "170f4cca684a5ff1", "scanner": "scanner-primary", "fingerprint": "20a9a5c449d12763", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2e649bd707b4af2e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/voice-app/renderer.js:213"}, "properties": {"repobilityId": "1c585d126cccc5ae", "scanner": "scanner-primary", "fingerprint": "2e649bd707b4af2e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-08c742eb302c178f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03e-cleanup-partial.ts:27"}, "properties": {"repobilityId": "ee2e3eb0599bef4e", "scanner": "scanner-primary", "fingerprint": "08c742eb302c178f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-987c1f8f7c0a29b3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/02-normalize.ts:149"}, "properties": {"repobilityId": "ea221c729faa57ce", "scanner": "scanner-primary", "fingerprint": "987c1f8f7c0a29b3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ecdee44acc75ab81", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/04-post-audit.ts:85"}, "properties": {"repobilityId": "68cf45c3a41e4980", "scanner": "scanner-primary", "fingerprint": "ecdee44acc75ab81", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a5977882910de51b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03a-check-custom-fields.ts:20"}, "properties": {"repobilityId": "3847eec3feb936bd", "scanner": "scanner-primary", "fingerprint": "a5977882910de51b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c116ad6708289da8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/02b-rematch.ts:301"}, "properties": {"repobilityId": "f6833ff6748022af", "scanner": "scanner-primary", "fingerprint": "c116ad6708289da8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8ffabf6b13b5050c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03f-check-null-ventas.ts:4"}, "properties": {"repobilityId": "31208b2d085a7720", "scanner": "scanner-primary", "fingerprint": "8ffabf6b13b5050c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-009523d643776731", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03c-check-rematch.ts:3"}, "properties": {"repobilityId": "9f9bc268c3f44b61", "scanner": "scanner-primary", "fingerprint": "009523d643776731", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fa9c6c4fd8071653", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/04a-investigate-orphans.ts:28"}, "properties": {"repobilityId": "c72591fa7ed69b5a", "scanner": "scanner-primary", "fingerprint": "fa9c6c4fd8071653", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7106774f8c4d82be", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/06-tag-confirmado.ts:71"}, "properties": {"repobilityId": "b452ec58accde0e2", "scanner": "scanner-primary", "fingerprint": "7106774f8c4d82be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b2ec2040ce238fa7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03-audit.ts:30"}, "properties": {"repobilityId": "dfcf02e4d1a6c6f8", "scanner": "scanner-primary", "fingerprint": "b2ec2040ce238fa7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3e99dec315181f85", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/04c-verify-counts.ts:52"}, "properties": {"repobilityId": "182bd6e277273b89", "scanner": "scanner-primary", "fingerprint": "3e99dec315181f85", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5e4262e38b5a46bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03b-test-single.ts:78"}, "properties": {"repobilityId": "e52f08722e79b240", "scanner": "scanner-primary", "fingerprint": "5e4262e38b5a46bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3f6b427d238eeef3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03-upload.ts:134"}, "properties": {"repobilityId": "0f05456fe4a133b6", "scanner": "scanner-primary", "fingerprint": "3f6b427d238eeef3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4b38da46a07b77dc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/02c-ventas-analysis.ts:90"}, "properties": {"repobilityId": "ab814aae91a6d6eb", "scanner": "scanner-primary", "fingerprint": "4b38da46a07b77dc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-89efb88abac783c1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/05-contact-audit.ts:80"}, "properties": {"repobilityId": "df3d90f5dab73aea", "scanner": "scanner-primary", "fingerprint": "89efb88abac783c1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-58e264f932fb98de", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/04b-cleanup-duplicates.ts:64"}, "properties": {"repobilityId": "70121cfe2f4f0d7c", "scanner": "scanner-primary", "fingerprint": "58e264f932fb98de", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2a2b69cdc78f5a50", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/02a-phone-issues.ts:71"}, "properties": {"repobilityId": "7b1742c88873f15c", "scanner": "scanner-primary", "fingerprint": "2a2b69cdc78f5a50", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7333cb0f01e7e069", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/01-download.ts:138"}, "properties": {"repobilityId": "5bae1932d562d103", "scanner": "scanner-primary", "fingerprint": "7333cb0f01e7e069", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7be887d2f31ce846", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bigin-migration/03d-check-standalone-fields.ts:7"}, "properties": {"repobilityId": "a211c75b03fd75b5", "scanner": "scanner-primary", "fingerprint": "7be887d2f31ce846", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b30e0ab868d72e4b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/agent-lifecycle-router/parity-validation.ts:38"}, "properties": {"repobilityId": "cc5e6fc1e0cd4275", "scanner": "scanner-primary", "fingerprint": "b30e0ab868d72e4b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8f34cada6132f335", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/index.ts:84"}, "properties": {"repobilityId": "9746a220c6585a1b", "scanner": "scanner-primary", "fingerprint": "8f34cada6132f335", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ef757d49760648af", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/enumerator.ts:60"}, "properties": {"repobilityId": "5085a995a4f10aaf", "scanner": "scanner-primary", "fingerprint": "ef757d49760648af", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-721939a6991650e9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/number-extractor.ts:95"}, "properties": {"repobilityId": "b4d2ddda8bc2807b", "scanner": "scanner-primary", "fingerprint": "721939a6991650e9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c99d59c538aa0c41", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/browser.ts:24"}, "properties": {"repobilityId": "b2227743d454e0a4", "scanner": "scanner-primary", "fingerprint": "c99d59c538aa0c41", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-13463a5999a3e68d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/writer.ts:30"}, "properties": {"repobilityId": "c223459916b3ed57", "scanner": "scanner-primary", "fingerprint": "13463a5999a3e68d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d0080b17f8482ca2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 robot-whatsapp-reader/src/chat-scraper.ts:74"}, "properties": {"repobilityId": "b4d38cd2c3b597ed", "scanner": "scanner-primary", "fingerprint": "d0080b17f8482ca2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5e0abeff1a1bdbdb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 bold-robot/server.js:43"}, "properties": {"repobilityId": "3436d7f76fff30b5", "scanner": "scanner-primary", "fingerprint": "5e0abeff1a1bdbdb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a1b304a84160d10c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 bold-robot/src/bold-client.js:58"}, "properties": {"repobilityId": "632ee842cc40e9af", "scanner": "scanner-primary", "fingerprint": "a1b304a84160d10c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-91f7c64b12497898", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 bold-robot/src/code-waiter.js:40"}, "properties": {"repobilityId": "4885b1efbd83e8f3", "scanner": "scanner-primary", "fingerprint": "91f7c64b12497898", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-94970c366e09420c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 godentist/robot-godentist/src/index.ts:7"}, "properties": {"repobilityId": "8c29236916816fc7", "scanner": "scanner-primary", "fingerprint": "94970c366e09420c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-df7e18043925900a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 godentist/robot-godentist/src/adapters/godentist-adapter.ts:139"}, "properties": {"repobilityId": "3443fed5111976b6", "scanner": "scanner-primary", "fingerprint": "df7e18043925900a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d60799e5335bc6f3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 robot-coordinadora/src/index.ts:13"}, "properties": {"repobilityId": "77e19f9b1f3315d3", "scanner": "scanner-primary", "fingerprint": "d60799e5335bc6f3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-69b1955157b84e78", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 robot-coordinadora/src/adapters/coordinadora-adapter.ts:42"}, "properties": {"repobilityId": "a92eb86b745f2137", "scanner": "scanner-primary", "fingerprint": "69b1955157b84e78", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ef164e2781d5b9d4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 robot-coordinadora/src/api/server.ts:86"}, "properties": {"repobilityId": "97d7d413f03db783", "scanner": "scanner-primary", "fingerprint": "ef164e2781d5b9d4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fb1a2a219396a37c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/instrumentation.ts:17"}, "properties": {"repobilityId": "1791378cdc59d011", "scanner": "scanner-primary", "fingerprint": "fb1a2a219396a37c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-757cd1510b5a7276", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/custom-fields/field-display.tsx:125"}, "properties": {"repobilityId": "cdf70548e8258aa2", "scanner": "scanner-primary", "fingerprint": "757cd1510b5a7276", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-38a6896a09c025a7", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/components/custom-fields/field-input.tsx:215"}, "properties": {"repobilityId": "a5fbb4cadd3b447c", "scanner": "scanner-primary", "fingerprint": "38a6896a09c025a7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-f4032d49c011f001", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/workspace/workspace-switcher.tsx:84"}, "properties": {"repobilityId": "b1b1eee18165a7ef", "scanner": "scanner-primary", "fingerprint": "f4032d49c011f001", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8d573271c1aaf29b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/search/search-result-item.tsx:51"}, "properties": {"repobilityId": "86aae1790e4b93bc", "scanner": "scanner-primary", "fingerprint": "8d573271c1aaf29b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0584ed9a50749817", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/integrations/shopify/oauth/callback/route.ts:205"}, "properties": {"repobilityId": "5dbc89674e3372ff", "scanner": "scanner-primary", "fingerprint": "0584ed9a50749817", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-59ceea5cd59a53e3", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/api/mobile/_lib/rate-limit.ts:3"}, "properties": {"repobilityId": "94826fbb565f2d60", "scanner": "scanner-primary", "fingerprint": "59ceea5cd59a53e3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-8e2eaa91bb9619a0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/sandbox/process/route.ts:316"}, "properties": {"repobilityId": "a2de0980c1b2a343", "scanner": "scanner-primary", "fingerprint": "8e2eaa91bb9619a0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c379f29ae3d2133c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/meta/route.ts:69"}, "properties": {"repobilityId": "b6a32d0008b8e58d", "scanner": "scanner-primary", "fingerprint": "c379f29ae3d2133c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-29d7ddc8855874f3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/whatsapp/route.ts:89"}, "properties": {"repobilityId": "15dbfbdc26b2ddad", "scanner": "scanner-primary", "fingerprint": "29d7ddc8855874f3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5912835b639cefa2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/shopify/route.ts:93"}, "properties": {"repobilityId": "34672cdc187b9611", "scanner": "scanner-primary", "fingerprint": "5912835b639cefa2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f3e5ebf8347a20a9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/robot-callback/route.ts:272"}, "properties": {"repobilityId": "6eea305ae16f1ba8", "scanner": "scanner-primary", "fingerprint": "f3e5ebf8347a20a9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-631a308ea6a5bb9b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/whatsapp-bubble.tsx:9"}, "properties": {"repobilityId": "dca55edd99ef2c2d", "scanner": "scanner-primary", "fingerprint": "631a308ea6a5bb9b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8a16a7d00747b1d5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/template-builder-layout.tsx:145"}, "properties": {"repobilityId": "5193a79f5099a3a9", "scanner": "scanner-primary", "fingerprint": "8a16a7d00747b1d5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ad4f08b04aa67a68", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/configuracion/integraciones/components/sync-status.tsx:98"}, "properties": {"repobilityId": "b52cb3d99f6435c9", "scanner": "scanner-primary", "fingerprint": "ad4f08b04aa67a68", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8c0501f99cafe400", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/comandos/components/history-panel.tsx:239"}, "properties": {"repobilityId": "030d9bcf5f36a1f2", "scanner": "scanner-primary", "fingerprint": "8c0501f99cafe400", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1e845358276289e5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/agentes/routing/editor/_components/MultiSelect.tsx:80"}, "properties": {"repobilityId": "bb72de6928dbef20", "scanner": "scanner-primary", "fingerprint": "1e845358276289e5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2be03594fb3f3a3f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:563"}, "properties": {"repobilityId": "9dd8f8b370cf8fa1", "scanner": "scanner-primary", "fingerprint": "2be03594fb3f3a3f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-607264159b66c858", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/debug-v3.tsx:151"}, "properties": {"repobilityId": "26c474de69329d3e", "scanner": "scanner-primary", "fingerprint": "607264159b66c858", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b6ebe7734ce6aa53", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/subloop-tab.tsx:175"}, "properties": {"repobilityId": "6d1e90c1c2b4d900", "scanner": "scanner-primary", "fingerprint": "b6ebe7734ce6aa53", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cc7a76a494faab85", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/pipeline-tab.tsx:90"}, "properties": {"repobilityId": "b95d9e08f1ec657a", "scanner": "scanner-primary", "fingerprint": "cc7a76a494faab85", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-76d90a09f7a5d046", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/ingest-tab.tsx:236"}, "properties": {"repobilityId": "8b96420802ed516f", "scanner": "scanner-primary", "fingerprint": "76d90a09f7a5d046", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-46b2d3e894bf3022", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/tools-tab.tsx:37"}, "properties": {"repobilityId": "36519520e1ea6f7a", "scanner": "scanner-primary", "fingerprint": "46b2d3e894bf3022", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0cde0c1ee37bb970", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/classify-tab.tsx:212"}, "properties": {"repobilityId": "f06099af23c5342e", "scanner": "scanner-primary", "fingerprint": "0cde0c1ee37bb970", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e4f870e52a4f42cf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/(dashboard)/whatsapp/components/contact-panel.tsx:148"}, "properties": {"repobilityId": "d5b2bc2918c594b5", "scanner": "scanner-primary", "fingerprint": "e4f870e52a4f42cf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-67e0c8335a615909", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/template-send-modal.tsx:225"}, "properties": {"repobilityId": "555a312bd553193e", "scanner": "scanner-primary", "fingerprint": "67e0c8335a615909", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b84fc083ccbceb19", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/assign-dropdown.tsx:118"}, "properties": {"repobilityId": "9c72bea05e57787a", "scanner": "scanner-primary", "fingerprint": "b84fc083ccbceb19", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5ba76328f75af853", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/view-order-sheet.tsx:328"}, "properties": {"repobilityId": "6b7811c149fd4852", "scanner": "scanner-primary", "fingerprint": "5ba76328f75af853", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4ac39a66dd95129f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/chat-header.tsx:345"}, "properties": {"repobilityId": "08c6ae1de6951f51", "scanner": "scanner-primary", "fingerprint": "4ac39a66dd95129f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-45ebffed894a224d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/media-preview.tsx:192"}, "properties": {"repobilityId": "d02727e7f8d3d07c", "scanner": "scanner-primary", "fingerprint": "45ebffed894a224d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-df9476d6041b6f00", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/new-conversation-modal.tsx:273"}, "properties": {"repobilityId": "09b5071f3b97e7d4", "scanner": "scanner-primary", "fingerprint": "df9476d6041b6f00", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-879149f2065fbf8a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/message-input.tsx:572"}, "properties": {"repobilityId": "d359611f27a81481", "scanner": "scanner-primary", "fingerprint": "879149f2065fbf8a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-418f9cc09266a25d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/auditor-tab.tsx:406"}, "properties": {"repobilityId": "689082178648c636", "scanner": "scanner-primary", "fingerprint": "418f9cc09266a25d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3fabc092a57b1370", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/turn-list.tsx:168"}, "properties": {"repobilityId": "90626866d0b3b19c", "scanner": "scanner-primary", "fingerprint": "3fabc092a57b1370", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-77c7e033ae9ac47f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/audit-message.tsx:10"}, "properties": {"repobilityId": "e0a2db0017c1cd36", "scanner": "scanner-primary", "fingerprint": "77c7e033ae9ac47f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c289184d100af60d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/event-row.tsx:119"}, "properties": {"repobilityId": "4ecd529f0d0ac7e0", "scanner": "scanner-primary", "fingerprint": "c289184d100af60d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7f11500e030d0e3c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/tareas/components/task-row.tsx:95"}, "properties": {"repobilityId": "d1b4e048002c5cfc", "scanner": "scanner-primary", "fingerprint": "7f11500e030d0e3c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-593d67ee9c16f1f2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/kanban-column.tsx:315"}, "properties": {"repobilityId": "d74bd5f094d95f6b", "scanner": "scanner-primary", "fingerprint": "593d67ee9c16f1f2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-538b01411af528f2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/contact-selector.tsx:215"}, "properties": {"repobilityId": "068677a55664fdbd", "scanner": "scanner-primary", "fingerprint": "538b01411af528f2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5f99ad569749c7d8", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/app/(dashboard)/crm/pedidos/components/orders-view.tsx:1045"}, "properties": {"repobilityId": "86ac071767f68cf6", "scanner": "scanner-primary", "fingerprint": "5f99ad569749c7d8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-f93e7af2af300296", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/related-orders.tsx:63"}, "properties": {"repobilityId": "c60711ed2f640748", "scanner": "scanner-primary", "fingerprint": "f93e7af2af300296", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3728da787d34d0aa", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/pipeline-tabs.tsx:216"}, "properties": {"repobilityId": "5cba8af40082820c", "scanner": "scanner-primary", "fingerprint": "3728da787d34d0aa", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2dd8913dead223cc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/kanban-card.tsx:260"}, "properties": {"repobilityId": "eb1668b2b934ec79", "scanner": "scanner-primary", "fingerprint": "2dd8913dead223cc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3545b964c16d3ec2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/order-sheet.tsx:323"}, "properties": {"repobilityId": "eae7d0ac1b2cf082", "scanner": "scanner-primary", "fingerprint": "3545b964c16d3ec2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b9233def5f8e864b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/pedidos/components/product-picker.tsx:146"}, "properties": {"repobilityId": "f1ee78840cb8fd7c", "scanner": "scanner-primary", "fingerprint": "b9233def5f8e864b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-569852d8e94a4279", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/contactos/components/csv-export-button.tsx:256"}, "properties": {"repobilityId": "2606582bf7056f03", "scanner": "scanner-primary", "fingerprint": "569852d8e94a4279", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f34004c6f26693c0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/crm/contactos/components/duplicate-resolver.tsx:162"}, "properties": {"repobilityId": "4da415670bf7b50a", "scanner": "scanner-primary", "fingerprint": "f34004c6f26693c0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-408d6a2e36a3f1f8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/components/automation-list.tsx:191"}, "properties": {"repobilityId": "b68eab00afa10e2d", "scanner": "scanner-primary", "fingerprint": "408d6a2e36a3f1f8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d13ba57372e8cacc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/components/execution-detail-dialog.tsx:216"}, "properties": {"repobilityId": "9e282be5c9878450", "scanner": "scanner-primary", "fingerprint": "d13ba57372e8cacc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5a97ad5ae67e708a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/components/execution-history.tsx:218"}, "properties": {"repobilityId": "dcfb0720a4c73fc1", "scanner": "scanner-primary", "fingerprint": "5a97ad5ae67e708a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c93a1000c23be1c9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/builder/components/builder-layout.tsx:112"}, "properties": {"repobilityId": "af04ec2a2c7f541e", "scanner": "scanner-primary", "fingerprint": "c93a1000c23be1c9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0f004c7c62946a7a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/builder/components/session-history.tsx:166"}, "properties": {"repobilityId": "c3eba88a9183b216", "scanner": "scanner-primary", "fingerprint": "0f004c7c62946a7a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9804bff1c9d8f14f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/automatizaciones/builder/components/preview-nodes.tsx:48"}, "properties": {"repobilityId": "d24d78d8c7404295", "scanner": "scanner-primary", "fingerprint": "9804bff1c9d8f14f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d079ed3644f0f7a3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/(dashboard)/sms/components/sms-metrics-cards.tsx:62"}, "properties": {"repobilityId": "3213f2bcdff34e2e", "scanner": "scanner-primary", "fingerprint": "d079ed3644f0f7a3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-35ae9659fb490fc9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/actions/agent-config.ts:92"}, "properties": {"repobilityId": "62957ac021a5811d", "scanner": "scanner-primary", "fingerprint": "35ae9659fb490fc9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f2ae8a9e7cb61623", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/actions/conversations.ts:48"}, "properties": {"repobilityId": "d92f6649d23c4df1", "scanner": "scanner-primary", "fingerprint": "f2ae8a9e7cb61623", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7821adb08e4cd87f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/actions/godentist.ts:141"}, "properties": {"repobilityId": "398388aaa3da9fca", "scanner": "scanner-primary", "fingerprint": "7821adb08e4cd87f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f1fab7d7523c2c74", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/actions/assignment.ts:156"}, "properties": {"repobilityId": "a1d25532ad5f604a", "scanner": "scanner-primary", "fingerprint": "f1fab7d7523c2c74", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0a3880d87c584649", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/actions/quick-replies.ts:369"}, "properties": {"repobilityId": "5e0a5bae013a8e3b", "scanner": "scanner-primary", "fingerprint": "0a3880d87c584649", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0859efe346226be9", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/agent-forensics/condense-timeline.ts:108"}, "properties": {"repobilityId": "17370ff59814cd46", "scanner": "scanner-primary", "fingerprint": "0859efe346226be9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-e2dff4b7e87e9fdc", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/agent-forensics/condense-previous-turn.ts:66"}, "properties": {"repobilityId": "2e4b1e673030c42f", "scanner": "scanner-primary", "fingerprint": "e2dff4b7e87e9fdc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-74987f82f97ccd18", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/messenger/webhook-handler.ts:257"}, "properties": {"repobilityId": "d7fcff90f07b3894", "scanner": "scanner-primary", "fingerprint": "74987f82f97ccd18", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e10ef2812e89a063", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/observability/flush.ts:151"}, "properties": {"repobilityId": "41c097bc753c693b", "scanner": "scanner-primary", "fingerprint": "e10ef2812e89a063", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-e170ad20d7775784", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/meta/media.ts:249"}, "properties": {"repobilityId": "295f6a154b0353f8", "scanner": "scanner-primary", "fingerprint": "e170ad20d7775784", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-64ce5bea8a6d6fac", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/production/agent-config.ts:109"}, "properties": {"repobilityId": "fc966225d762e1a7", "scanner": "scanner-primary", "fingerprint": "64ce5bea8a6d6fac", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7c318a8a20240cbe", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/agents/production/metrics.ts:198"}, "properties": {"repobilityId": "8d94af50eecbe2ef", "scanner": "scanner-primary", "fingerprint": "7c318a8a20240cbe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e91da265263b62bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio/template-manager.ts:302"}, "properties": {"repobilityId": "71fbd8bba65ed1f6", "scanner": "scanner-primary", "fingerprint": "e91da265263b62bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0dcd89cc48f722c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/godentist-fb-ig/dentos-availability.ts:45"}, "properties": {"repobilityId": "48f29e5d4e20cc04", "scanner": "scanner-primary", "fingerprint": "0dcd89cc48f722c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-676bfdadf17e8afa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/godentist/dentos-availability.ts:43"}, "properties": {"repobilityId": "8a23c4f1ad1a3714", "scanner": "scanner-primary", "fingerprint": "676bfdadf17e8afa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0a731d70018a7e56", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/engine/unified-engine.ts:65"}, "properties": {"repobilityId": "ffad6b3831da0150", "scanner": "scanner-primary", "fingerprint": "0a731d70018a7e56", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-03d875ba22cab4a3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/engine/v4-production-runner.ts:337"}, "properties": {"repobilityId": "aeb4501c05790c7c", "scanner": "scanner-primary", "fingerprint": "03d875ba22cab4a3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-efde6760bd8a1c86", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/engine/v3-production-runner.ts:68"}, "properties": {"repobilityId": "e099d65990bed935", "scanner": "scanner-primary", "fingerprint": "efde6760bd8a1c86", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ecd50891b2cebd78", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/interruption-system-v2/observability.ts:85"}, "properties": {"repobilityId": "f8509e9acaa34873", "scanner": "scanner-primary", "fingerprint": "ecd50891b2cebd78", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-56619b20e93f2589", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/observability.ts:32"}, "properties": {"repobilityId": "5fce45342c56d6c5", "scanner": "scanner-primary", "fingerprint": "56619b20e93f2589", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a89e40a04ad57ff1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/__tests__/smoke-hybrid.test.ts:339"}, "properties": {"repobilityId": "a109733c45e1f523", "scanner": "scanner-primary", "fingerprint": "a89e40a04ad57ff1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d93ac23a3684fc5e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/llm-fallback/observability.ts:50"}, "properties": {"repobilityId": "fe84f2f0d45980b1", "scanner": "scanner-primary", "fingerprint": "d93ac23a3684fc5e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b6245640eaf49508", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/sub-loop/kb-search-tool.ts:98"}, "properties": {"repobilityId": "e6f58a52e0227f48", "scanner": "scanner-primary", "fingerprint": "b6245640eaf49508", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b27ae7b1aff33df9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/sub-loop/tooling-call.ts:227"}, "properties": {"repobilityId": "ec4fe5f20e504e19", "scanner": "scanner-primary", "fingerprint": "b27ae7b1aff33df9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9878a4006b7735d8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/agents/somnio-v4/core/turn-orchestrator.ts:144"}, "properties": {"repobilityId": "7fc1757661f5a2b1", "scanner": "scanner-primary", "fingerprint": "9878a4006b7735d8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-791ddfd7ab6845fc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/whatsapp/api.ts:173"}, "properties": {"repobilityId": "f56f1aee306dea73", "scanner": "scanner-primary", "fingerprint": "791ddfd7ab6845fc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8feb4462002ec59b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/whatsapp/webhook-handler.ts:418"}, "properties": {"repobilityId": "4f48aa7dd7c537ee", "scanner": "scanner-primary", "fingerprint": "8feb4462002ec59b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5c86a462e1c613c2", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/supabase/middleware.ts:73"}, "properties": {"repobilityId": "a0a5fb59f4da3a10", "scanner": "scanner-primary", "fingerprint": "5c86a462e1c613c2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-f016d098d8e5860f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/automations/action-executor.ts:200"}, "properties": {"repobilityId": "78515ef3b1063469", "scanner": "scanner-primary", "fingerprint": "f016d098d8e5860f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e3b44ae35dd6034a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/instagram/webhook-handler.ts:338"}, "properties": {"repobilityId": "5ada5360bf358833", "scanner": "scanner-primary", "fingerprint": "e3b44ae35dd6034a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-51427e8abf578e39", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/shopify/webhook-handler.ts:62"}, "properties": {"repobilityId": "f0574d16ab1bd58d", "scanner": "scanner-primary", "fingerprint": "51427e8abf578e39", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-936b8c01e2983b58", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/domain/messages.ts:879"}, "properties": {"repobilityId": "283e01fe0127a3d8", "scanner": "scanner-primary", "fingerprint": "936b8c01e2983b58", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8d6e1ae3860283cd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/domain/robot-jobs.ts:350"}, "properties": {"repobilityId": "4e2cde75e47d1686", "scanner": "scanner-primary", "fingerprint": "8d6e1ae3860283cd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0ce78d2d79c9f1a5", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/domain/orders.ts:1937"}, "properties": {"repobilityId": "d57a5cd9102bbbcb", "scanner": "scanner-primary", "fingerprint": "0ce78d2d79c9f1a5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b045d85fc4952acd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/domain/carrier-coverage.ts:419"}, "properties": {"repobilityId": "dd6ea6c61043cbb9", "scanner": "scanner-primary", "fingerprint": "b045d85fc4952acd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-98a441a75e726fe5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/domain/contact-reviews.ts:467"}, "properties": {"repobilityId": "d8a565a3561066bc", "scanner": "scanner-primary", "fingerprint": "98a441a75e726fe5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-20c354fddd05619e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/domain/varix-clinic/client.ts:6"}, "properties": {"repobilityId": "e49e37d1306b4f47", "scanner": "scanner-primary", "fingerprint": "20c354fddd05619e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-f2d9ee36b2e7fbcf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/hooks/use-conversations.ts:605"}, "properties": {"repobilityId": "9ecac36f610cb6a4", "scanner": "scanner-primary", "fingerprint": "f2d9ee36b2e7fbcf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-009495292bf9ce2b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/hooks/use-messages.ts:354"}, "properties": {"repobilityId": "bb0fe87d43480e4d", "scanner": "scanner-primary", "fingerprint": "009495292bf9ce2b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-647224b1be3d63cd", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/inngest/functions/bold-upstream-broken.ts:16"}, "properties": {"repobilityId": "95b6f8a67378e0e9", "scanner": "scanner-primary", "fingerprint": "647224b1be3d63cd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0822d0faa6a54afa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/inngest/functions/task-overdue-cron.ts:116"}, "properties": {"repobilityId": "c4a8b9921b960669", "scanner": "scanner-primary", "fingerprint": "0822d0faa6a54afa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-37861212905cfb0f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/inngest/functions/godentist-scrape-inconsistent.ts:61"}, "properties": {"repobilityId": "65eb7eb3c0d12e34", "scanner": "scanner-primary", "fingerprint": "37861212905cfb0f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-030e723358ff6f41", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/inngest/functions/robot-orchestrator.ts:92"}, "properties": {"repobilityId": "3f156b33f4b67894", "scanner": "scanner-primary", "fingerprint": "030e723358ff6f41", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c904f2de8da75418", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/inngest/functions/automation-runner.ts:268"}, "properties": {"repobilityId": "a183dcb13947281b", "scanner": "scanner-primary", "fingerprint": "c904f2de8da75418", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b8dc20187419ea9f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 e2e/visual/editorial-fidelity.spec.ts:127"}, "properties": {"repobilityId": "10158a31de47e47e", "scanner": "scanner-primary", "fingerprint": "b8dc20187419ea9f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-046b3b72e19661bd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 e2e/visual/regla6-regression.spec.ts:137"}, "properties": {"repobilityId": "838c5eb242ce36f8", "scanner": "scanner-primary", "fingerprint": "046b3b72e19661bd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4295ab2819e30a24", "level": "warning", "message": {"text": "Dockerfile runs as root: bold-robot/Dockerfile"}, "properties": {"repobilityId": "822ee28c4e277416", "scanner": "scanner-primary", "fingerprint": "4295ab2819e30a24", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-41615533441bca7e", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/playwright:v1.58.2-noble"}, "properties": {"repobilityId": "d48012aa552aca6a", "scanner": "scanner-primary", "fingerprint": "41615533441bca7e", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bold-robot/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e16a0c27ec5856f2", "level": "warning", "message": {"text": "Dockerfile runs as root: godentist/robot-godentist/Dockerfile"}, "properties": {"repobilityId": "8cbcc1167a4e6541", "scanner": "scanner-primary", "fingerprint": "e16a0c27ec5856f2", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-f1c3ab3866bebaae", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/playwright:v1.58.2-noble"}, "properties": {"repobilityId": "08aaacca36fb7e32", "scanner": "scanner-primary", "fingerprint": "f1c3ab3866bebaae", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "godentist/robot-godentist/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d8b440bcb2e29eab", "level": "warning", "message": {"text": "Dockerfile runs as root: robot-coordinadora/Dockerfile"}, "properties": {"repobilityId": "e9e3afd37a15cdfd", "scanner": "scanner-primary", "fingerprint": "d8b440bcb2e29eab", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-77fad6e65e6f6021", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/playwright:v1.58.2-noble"}, "properties": {"repobilityId": "00fbd792e3032e80", "scanner": "scanner-primary", "fingerprint": "77fad6e65e6f6021", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "robot-coordinadora/Dockerfile"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-e55b7474c950ebbc", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in apps/mobile/README.md:131"}, "properties": {"repobilityId": "d85069fbc89f2886", "scanner": "scanner-primary", "fingerprint": "e55b7474c950ebbc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/mobile/README.md"}, "region": {"startLine": 131}}}]}, {"ruleId": "scanner-97802a3cfb39da35", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in scripts/voice-app/main.js:76"}, "properties": {"repobilityId": "a6c95a740803ab84", "scanner": "scanner-primary", "fingerprint": "97802a3cfb39da35", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/voice-app/main.js"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-653331981fbd1ceb", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/voice-app/main.js:12"}, "properties": {"repobilityId": "cb0f9f436fa88ccb", "scanner": "scanner-primary", "fingerprint": "653331981fbd1ceb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/voice-app/main.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-d34e98fb7706d112", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/voice-app/renderer.js:36"}, "properties": {"repobilityId": "555b5c95b643533e", "scanner": "scanner-primary", "fingerprint": "d34e98fb7706d112", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/voice-app/renderer.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-37218c812cba7c70", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in src/app/api/v1/crm-bots/writer/confirm/route.ts:129"}, "properties": {"repobilityId": "075e8c35686082c9", "scanner": "scanner-primary", "fingerprint": "37218c812cba7c70", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/api/v1/crm-bots/writer/confirm/route.ts"}, "region": {"startLine": 129}}}]}, {"ruleId": "scanner-bc7239925181b1fe", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in src/app/api/v1/crm-bots/writer/propose/route.ts:130"}, "properties": {"repobilityId": "6e30f5e74ed00039", "scanner": "scanner-primary", "fingerprint": "bc7239925181b1fe", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/api/v1/crm-bots/writer/propose/route.ts"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-1f4797955c222054", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-query-tools/__tests__/orders.test.ts:70"}, "properties": {"repobilityId": "5f910b7a63274b0f", "scanner": "scanner-primary", "fingerprint": "1f4797955c222054", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/agents/shared/crm-query-tools/__tests__/orders.test.ts"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-51e4628fcb2ca6c1", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-mutation-tools/__tests__/notes.test.ts:291"}, "properties": {"repobilityId": "28f4b96f9abcc9b9", "scanner": "scanner-primary", "fingerprint": "51e4628fcb2ca6c1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/agents/shared/crm-mutation-tools/__tests__/notes.test.ts"}, "region": {"startLine": 291}}}]}, {"ruleId": "scanner-952d3a63a36f8666", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-mutation-tools/__tests__/tasks.test.ts:206"}, "properties": {"repobilityId": "931064874f961b6f", "scanner": "scanner-primary", "fingerprint": "952d3a63a36f8666", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/agents/shared/crm-mutation-tools/__tests__/tasks.test.ts"}, "region": {"startLine": 206}}}]}, {"ruleId": "scanner-20fd9abadcbb09e5", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-mutation-tools/__tests__/contacts.test.ts:178"}, "properties": {"repobilityId": "c4b307990a4c8806", "scanner": "scanner-primary", "fingerprint": "20fd9abadcbb09e5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/agents/shared/crm-mutation-tools/__tests__/contacts.test.ts"}, "region": {"startLine": 178}}}]}, {"ruleId": "scanner-3ac2ed3e60724a1b", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in src/lib/agents/shared/crm-mutation-tools/__tests__/orders.test.ts:199"}, "properties": {"repobilityId": "7f647bdee3e47435", "scanner": "scanner-primary", "fingerprint": "3ac2ed3e60724a1b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/agents/shared/crm-mutation-tools/__tests__/orders.test.ts"}, "region": {"startLine": 199}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-6da896c4ecf8be7b", "level": "note", "message": {"text": "Very large file: godentist/robot-godentist/src/adapters/godentist-adapter.ts (2170 lines)"}, "properties": {"repobilityId": "94367acb142e2f58", "scanner": "scanner-primary", "fingerprint": "6da896c4ecf8be7b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dd87c2436f30acfa", "level": "note", "message": {"text": "Very large file: src/app/(dashboard)/whatsapp/components/contact-panel.tsx (1517 lines)"}, "properties": {"repobilityId": "e3d9c50a28307054", "scanner": "scanner-primary", "fingerprint": "dd87c2436f30acfa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c44d2d41c858e57b", "level": "note", "message": {"text": "Very large file: src/app/(dashboard)/crm/pedidos/components/orders-view.tsx (1489 lines)"}, "properties": {"repobilityId": "218b134c673e7176", "scanner": "scanner-primary", "fingerprint": "c44d2d41c858e57b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0ea7202d97348e35", "level": "note", "message": {"text": "Very large file: src/app/(dashboard)/automatizaciones/components/actions-step.tsx (1628 lines)"}, "properties": {"repobilityId": "b79a77c1d9a2b8e5", "scanner": "scanner-primary", "fingerprint": "0ea7202d97348e35", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-eaa148efb4d5b3f6", "level": "note", "message": {"text": "Very large file: src/app/(dashboard)/confirmaciones/confirmaciones-panel.tsx (1549 lines)"}, "properties": {"repobilityId": "e55f5752fd85b558", "scanner": "scanner-primary", "fingerprint": "eaa148efb4d5b3f6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5aa6d5098ca01ad9", "level": "note", "message": {"text": "Very large file: src/lib/agents/production/webhook-processor.ts (1348 lines)"}, "properties": {"repobilityId": "e75f2f46bee18f83", "scanner": "scanner-primary", "fingerprint": "5aa6d5098ca01ad9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ef9054d7ab1cfaab", "level": "note", "message": {"text": "Very large file: src/lib/agents/somnio-v4/somnio-v4-agent.ts (1353 lines)"}, "properties": {"repobilityId": "8d582bf30ce8d2d2", "scanner": "scanner-primary", "fingerprint": "ef9054d7ab1cfaab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-203c03f83ba6482c", "level": "note", "message": {"text": "Very large file: src/lib/tools/handlers/crm/index.ts (2385 lines)"}, "properties": {"repobilityId": "0bdee8af44156558", "scanner": "scanner-primary", "fingerprint": "203c03f83ba6482c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4849353f115120d4", "level": "note", "message": {"text": "Very large file: src/lib/automations/action-executor.ts (1427 lines)"}, "properties": {"repobilityId": "e9f563058fa90c20", "scanner": "scanner-primary", "fingerprint": "4849353f115120d4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8899075a177a0998", "level": "note", "message": {"text": "Very large file: src/lib/domain/orders.ts (2146 lines)"}, "properties": {"repobilityId": "6eeba58c6ed4e00e", "scanner": "scanner-primary", "fingerprint": "8899075a177a0998", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-df93ce207aaa8d5d", "level": "note", "message": {"text": "54 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "df93ce207aaa8d5d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "230173545be5208e", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-382eaa47583d9b9f", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: scripts/voice-app/package.json"}, "properties": {"repobilityId": "2b071753e983ac88", "scanner": "scanner-primary", "fingerprint": "382eaa47583d9b9f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/voice-app/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-82f9d33bcba1a4f7", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: bold-robot/package.json"}, "properties": {"repobilityId": "2f81d513ff1691b2", "scanner": "scanner-primary", "fingerprint": "82f9d33bcba1a4f7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bold-robot/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "68651a99e0c4129a", "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": "599516113b825b99", "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": "b772b1ff46593df8", "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": "35e5dbd5061cd7af", "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": "d1fa1ff442389453", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "bae143501aef5af3", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "d4fcfb0a9f571a3b", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-87c58681e3870b6a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/rules/code-changes.md"}, "properties": {"repobilityId": "d57cb7d3fe3dcb2e", "scanner": "scanner-primary", "fingerprint": "87c58681e3870b6a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/code-changes.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dcc94a168cd98873", "level": "none", "message": {"text": "Commented-code block (5 lines) in playwright.config.ts:1"}, "properties": {"repobilityId": "9c50d9dd8cb629a3", "scanner": "scanner-primary", "fingerprint": "dcc94a168cd98873", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f748fd09efdd3181", "level": "none", "message": {"text": "Commented-code block (6 lines) in middleware.ts:9"}, "properties": {"repobilityId": "0b557daa1f13b05a", "scanner": "scanner-primary", "fingerprint": "f748fd09efdd3181", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2b8002084f6e27b", "level": "none", "message": {"text": "Commented-code block (7 lines) in vitest.config.ts:11"}, "properties": {"repobilityId": "b662708f3bd35307", "scanner": "scanner-primary", "fingerprint": "d2b8002084f6e27b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a83583bd28b753f", "level": "none", "message": {"text": "Commented-code block (8 lines) in next.config.ts:13"}, "properties": {"repobilityId": "4f2e29bde92c512e", "scanner": "scanner-primary", "fingerprint": "4a83583bd28b753f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa90532c55a36933", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/mobile/app/(tabs)/inbox.tsx:51"}, "properties": {"repobilityId": "1e61284106b95ce9", "scanner": "scanner-primary", "fingerprint": "fa90532c55a36933", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fcf0caaa729bea6d", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/mobile/src/components/settings/SettingsScreen.tsx:55"}, "properties": {"repobilityId": "dc11820e7beb9a6e", "scanner": "scanner-primary", "fingerprint": "fcf0caaa729bea6d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb8aa489e40c5722", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/mobile/src/components/media/AudioPlayer.tsx:85"}, "properties": {"repobilityId": "25bf77f4a0bddf40", "scanner": "scanner-primary", "fingerprint": "fb8aa489e40c5722", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bbfb6f6fecedaa7", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/mobile/src/components/chat/TemplateVariableSheet.tsx:124"}, "properties": {"repobilityId": "641298d9cf30cbd1", "scanner": "scanner-primary", "fingerprint": "9bbfb6f6fecedaa7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14b8dd2187a357e8", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/mobile/src/components/chat/MessageList.tsx:176"}, "properties": {"repobilityId": "eb752dca6db9e5f3", "scanner": "scanner-primary", "fingerprint": "14b8dd2187a357e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-216bed03d45a49ed", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/mobile/src/components/search/SearchResultRow.tsx:36"}, "properties": {"repobilityId": "90f5f1400ed0b3f7", "scanner": "scanner-primary", "fingerprint": "216bed03d45a49ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc824566c9c18d25", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/mobile/src/lib/api-client.ts:4"}, "properties": {"repobilityId": "9c00d3204b664eaa", "scanner": "scanner-primary", "fingerprint": "bc824566c9c18d25", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-26d5da475b97d728", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/mobile/src/lib/workspace/context.tsx:161"}, "properties": {"repobilityId": "ced6abda4fd8f7b8", "scanner": "scanner-primary", "fingerprint": "26d5da475b97d728", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee5d27a0a21f3bd5", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/mobile/src/lib/api-schemas/bot-mode.ts:4"}, "properties": {"repobilityId": "9d889b61b9027b2d", "scanner": "scanner-primary", "fingerprint": "ee5d27a0a21f3bd5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9dc4e6454d09e7b", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/mobile/src/lib/api-schemas/messages.ts:4"}, "properties": {"repobilityId": "da9cbf33924459cd", "scanner": "scanner-primary", "fingerprint": "d9dc4e6454d09e7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51a4fc02f07f72cb", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/mobile/src/lib/api-schemas/search.ts:3"}, "properties": {"repobilityId": "3634c42c1ead2a03", "scanner": "scanner-primary", "fingerprint": "51a4fc02f07f72cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf5b3ba7be1ac1f6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/mobile/src/lib/api-schemas/templates.ts:3"}, "properties": {"repobilityId": "31ef28063de9e736", "scanner": "scanner-primary", "fingerprint": "cf5b3ba7be1ac1f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-def25a10e14f376e", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/mobile/src/lib/api-schemas/conversations.ts:3"}, "properties": {"repobilityId": "e07bd0feb0ce7afc", "scanner": "scanner-primary", "fingerprint": "def25a10e14f376e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a4253d77f83a0c1", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/mobile/src/lib/api-schemas/quick-replies.ts:3"}, "properties": {"repobilityId": "dca1957a138637df", "scanner": "scanner-primary", "fingerprint": "1a4253d77f83a0c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2f231a550d2e084", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/mobile/src/lib/db/conversations-cache.ts:125"}, "properties": {"repobilityId": "ac96446b8831be96", "scanner": "scanner-primary", "fingerprint": "f2f231a550d2e084", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d26cf1f1a9ccf19e", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/mobile/src/hooks/useContactPanel.ts:232"}, "properties": {"repobilityId": "b34942e161b5689a", "scanner": "scanner-primary", "fingerprint": "d26cf1f1a9ccf19e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-350ba757c551d5a5", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/mobile/src/hooks/useBotToggle.ts:79"}, "properties": {"repobilityId": "1a3b8c6287088f83", "scanner": "scanner-primary", "fingerprint": "350ba757c551d5a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcb3b0768b651dd8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/mobile/src/hooks/useConversationMessages.ts:12"}, "properties": {"repobilityId": "477b274b3325ecb9", "scanner": "scanner-primary", "fingerprint": "bcb3b0768b651dd8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0769941a935f5352", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/mobile/src/hooks/useInboxList.ts:12"}, "properties": {"repobilityId": "a308edcc8e27c0dc", "scanner": "scanner-primary", "fingerprint": "0769941a935f5352", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0015164c064e67c0", "level": "none", "message": {"text": "Commented-code block (10 lines) in shared/mobile-api/schemas.ts:82"}, "properties": {"repobilityId": "239dde2ff0102298", "scanner": "scanner-primary", "fingerprint": "0015164c064e67c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dde84708a9e98e97", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/_robot-inbox-nav.ts:8"}, "properties": {"repobilityId": "d19142069df102f4", "scanner": "scanner-primary", "fingerprint": "dde84708a9e98e97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3b57c64c0b0ff9c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/godentist-blast-experiment.ts:91"}, "properties": {"repobilityId": "80b07f0386e661ef", "scanner": "scanner-primary", "fingerprint": "c3b57c64c0b0ff9c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1c928ce2f07aa66a", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/_diag-realtime-bisect.ts:5"}, "properties": {"repobilityId": "e4134782650566f3", "scanner": "scanner-primary", "fingerprint": "1c928ce2f07aa66a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c66366e7751e870", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/_diag-realtime-authed.ts:5"}, "properties": {"repobilityId": "6c460fe47ab7a38e", "scanner": "scanner-primary", "fingerprint": "3c66366e7751e870", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a978195b2c2167b", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/debug-doralba-pattern.mjs:1"}, "properties": {"repobilityId": "bf3e5f75a62b171a", "scanner": "scanner-primary", "fingerprint": "8a978195b2c2167b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71799936ffed4482", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/debug-tooling-call-experiment.mjs:4"}, "properties": {"repobilityId": "667a5f196793fab7", "scanner": "scanner-primary", "fingerprint": "71799936ffed4482", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b05038857580904", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/_meta-register-number.ts:38"}, "properties": {"repobilityId": "ce6fc14eda225e60", "scanner": "scanner-primary", "fingerprint": "9b05038857580904", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3ae236b438656830", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/godentist-prima-promocion-campaign.ts:97"}, "properties": {"repobilityId": "b669c53c5ebf5dbe", "scanner": "scanner-primary", "fingerprint": "3ae236b438656830", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-86aa7ee4af13db2b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/migrate-twilio-automations-to-onurix.mjs:1"}, "properties": {"repobilityId": "14d776b54c916403", "scanner": "scanner-primary", "fingerprint": "86aa7ee4af13db2b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85ea8d6d58a48b3a", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/debug-doralba-reproduce.mjs:1"}, "properties": {"repobilityId": "3abb2da3ca1ba0ba", "scanner": "scanner-primary", "fingerprint": "85ea8d6d58a48b3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8408fbb1299c669e", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/_diag-drive-noop.ts:1"}, "properties": {"repobilityId": "089c4ef18d047869", "scanner": "scanner-primary", "fingerprint": "8408fbb1299c669e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c78f39f9acf401f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/voice-app/renderer.js:250"}, "properties": {"repobilityId": "53ab505ad10a1809", "scanner": "scanner-primary", "fingerprint": "0c78f39f9acf401f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-95cbb9b246c6ad86", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/lib/whatsapp-history/map.ts:6"}, "properties": {"repobilityId": "6a2aabe496028c42", "scanner": "scanner-primary", "fingerprint": "95cbb9b246c6ad86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8da9db2b7d21f095", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/whatsapp-history/map.test.ts:1"}, "properties": {"repobilityId": "3e4b9aeb959092fc", "scanner": "scanner-primary", "fingerprint": "8da9db2b7d21f095", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fa05e881faa8bbd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/bigin-migration/01-download.ts:130"}, "properties": {"repobilityId": "38b0e544bd6633b8", "scanner": "scanner-primary", "fingerprint": "6fa05e881faa8bbd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8c901a60c4dd0683", "level": "none", "message": {"text": "Commented-code block (5 lines) in robot-whatsapp-reader/src/enumerator.ts:21"}, "properties": {"repobilityId": "b3c6fcc2c9358f69", "scanner": "scanner-primary", "fingerprint": "8c901a60c4dd0683", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4824553bbb8e84cd", "level": "none", "message": {"text": "Commented-code block (9 lines) in robot-whatsapp-reader/src/number-extractor.ts:3"}, "properties": {"repobilityId": "d680836306bd6e42", "scanner": "scanner-primary", "fingerprint": "4824553bbb8e84cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d06ffcf0a939fb73", "level": "none", "message": {"text": "Commented-code block (6 lines) in robot-whatsapp-reader/src/chat-scraper.ts:3"}, "properties": {"repobilityId": "859fd1105e32f758", "scanner": "scanner-primary", "fingerprint": "d06ffcf0a939fb73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da5c4f17542d35d0", "level": "none", "message": {"text": "Commented-code block (6 lines) in bold-robot/server.js:69"}, "properties": {"repobilityId": "735cf117d02c753d", "scanner": "scanner-primary", "fingerprint": "da5c4f17542d35d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8561ea938e6b663f", "level": "none", "message": {"text": "Commented-code block (5 lines) in bold-robot/src/bold-client.js:125"}, "properties": {"repobilityId": "7739e25bf26e904b", "scanner": "scanner-primary", "fingerprint": "8561ea938e6b663f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09405f17fbf997f9", "level": "none", "message": {"text": "Commented-code block (5 lines) in godentist/robot-godentist/src/adapters/godentist-adapter.ts:44"}, "properties": {"repobilityId": "c9c555a22b27ec96", "scanner": "scanner-primary", "fingerprint": "09405f17fbf997f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2d77a27d38965f6", "level": "none", "message": {"text": "Commented-code block (6 lines) in godentist/robot-godentist/src/api/server.ts:109"}, "properties": {"repobilityId": "eb41243c23310e07", "scanner": "scanner-primary", "fingerprint": "a2d77a27d38965f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68e33a631ceca93e", "level": "none", "message": {"text": "Commented-code block (5 lines) in robot-coordinadora/src/types/index.ts:1"}, "properties": {"repobilityId": "8b3d8d303caa9add", "scanner": "scanner-primary", "fingerprint": "68e33a631ceca93e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2afdaf7727c20f8", "level": "none", "message": {"text": "Commented-code block (5 lines) in robot-coordinadora/src/api/server.ts:1"}, "properties": {"repobilityId": "0a7885577a372c54", "scanner": "scanner-primary", "fingerprint": "d2afdaf7727c20f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc28f65a8e3af0a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/__tests__/integration/orders-duplicate-products.test.ts:322"}, "properties": {"repobilityId": "7f3fee5b3f8b5e75", "scanner": "scanner-primary", "fingerprint": "cc28f65a8e3af0a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6b31ffd4b9744e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/__tests__/integration/crm-bots/reader.test.ts:140"}, "properties": {"repobilityId": "516dd5b46fe77264", "scanner": "scanner-primary", "fingerprint": "f6b31ffd4b9744e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23c9381879a7fc31", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/__tests__/integration/crm-bots/reader.test.ts:65"}, "properties": {"repobilityId": "bd6cfe3e310ef08a", "scanner": "scanner-primary", "fingerprint": "23c9381879a7fc31", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2eb29e49b8169ef8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/__tests__/integration/crm-bots/ttl-cron.test.ts:63"}, "properties": {"repobilityId": "632904e8d2edfcd1", "scanner": "scanner-primary", "fingerprint": "2eb29e49b8169ef8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4fb3f6eefc150c4e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/__tests__/integration/crm-bots/writer-two-step.test.ts:78"}, "properties": {"repobilityId": "61811dfd661fd9c5", "scanner": "scanner-primary", "fingerprint": "4fb3f6eefc150c4e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-85921b70e056e670", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/__tests__/integration/crm-bots/security.test.ts:144"}, "properties": {"repobilityId": "46fde814afbea3ab", "scanner": "scanner-primary", "fingerprint": "85921b70e056e670", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80888c6ea38b6206", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/__tests__/integration/crm-bots/security.test.ts:48"}, "properties": {"repobilityId": "8f43ff7ccba0148a", "scanner": "scanner-primary", "fingerprint": "80888c6ea38b6206", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fc386072266957be", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/__tests__/integration/somnio-v4/sub-loop-no-match.test.ts:6"}, "properties": {"repobilityId": "8f97ddf2934266dc", "scanner": "scanner-primary", "fingerprint": "fc386072266957be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1dace530188f71b2", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/__tests__/integration/somnio-v4/sub-loop-happy.test.ts:6"}, "properties": {"repobilityId": "a4f99c7f1c49ac76", "scanner": "scanner-primary", "fingerprint": "1dace530188f71b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e99f409eaffcc28", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/settings/connect-whatsapp.tsx:12"}, "properties": {"repobilityId": "85760ae0e09f2f97", "scanner": "scanner-primary", "fingerprint": "7e99f409eaffcc28", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4467c55c1eabd332", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/settings/connect-facebook.tsx:7"}, "properties": {"repobilityId": "cd223e23de1f1a29", "scanner": "scanner-primary", "fingerprint": "4467c55c1eabd332", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c773d21408e0d6df", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/components/settings/connect-instagram.tsx:7"}, "properties": {"repobilityId": "32ea7ca24b3b88ba", "scanner": "scanner-primary", "fingerprint": "c773d21408e0d6df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-108f48cb3e251fac", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/components/layout/sidebar.tsx:158"}, "properties": {"repobilityId": "5f136a08eb6cbbf5", "scanner": "scanner-primary", "fingerprint": "108f48cb3e251fac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1dfd5cebb017039", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/layout/mobile-nav.tsx:77"}, "properties": {"repobilityId": "4f91cfba0ba7b545", "scanner": "scanner-primary", "fingerprint": "a1dfd5cebb017039", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c9736ad8fe34663", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/app/api/integrations/shopify/oauth/callback/route.ts:4"}, "properties": {"repobilityId": "dab847719eaee6f1", "scanner": "scanner-primary", "fingerprint": "9c9736ad8fe34663", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce95c1a681fbd7c5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/v1/crm-bots/reader/route.ts:44"}, "properties": {"repobilityId": "0bb3145fa0efa19c", "scanner": "scanner-primary", "fingerprint": "ce95c1a681fbd7c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b4b8025226c7e87", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/config-builder/templates/upload/route.ts:5"}, "properties": {"repobilityId": "3cf76cc351fae6f9", "scanner": "scanner-primary", "fingerprint": "7b4b8025226c7e87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f842a8ca80f3c4d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/config-builder/templates/chat/route.ts:5"}, "properties": {"repobilityId": "c0815abe6e65e29a", "scanner": "scanner-primary", "fingerprint": "3f842a8ca80f3c4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8df49345f81292fb", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/agent-forensics/audit/route.ts:5"}, "properties": {"repobilityId": "f07c46a505acb0ee", "scanner": "scanner-primary", "fingerprint": "8df49345f81292fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-216ed5576601720e", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/api/mobile/orders/route.ts:3"}, "properties": {"repobilityId": "e5132aeddfbacfbc", "scanner": "scanner-primary", "fingerprint": "216ed5576601720e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ad86aef9c475422", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/mobile/orders/[id]/recompra/route.ts:7"}, "properties": {"repobilityId": "501cb48de69ac640", "scanner": "scanner-primary", "fingerprint": "9ad86aef9c475422", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-abf12c7751cec98e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/mobile/push/register/route.ts:5"}, "properties": {"repobilityId": "85b0b9cd1b1afbd0", "scanner": "scanner-primary", "fingerprint": "abf12c7751cec98e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06a70f285569c13b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/mobile/workspaces/route.ts:3"}, "properties": {"repobilityId": "bbf55f84af3f4dd4", "scanner": "scanner-primary", "fingerprint": "06a70f285569c13b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cbd6a3fa6267ef60", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/mobile/health/route.ts:3"}, "properties": {"repobilityId": "49e3ee22ecc9242b", "scanner": "scanner-primary", "fingerprint": "cbd6a3fa6267ef60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6673276a3ca41df", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/mobile/conversations/route.ts:74"}, "properties": {"repobilityId": "04e274e52f8230a6", "scanner": "scanner-primary", "fingerprint": "b6673276a3ca41df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0e3502a16644ed5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/mobile/conversations/[id]/orders/route.ts:11"}, "properties": {"repobilityId": "d185638ba9c3ca62", "scanner": "scanner-primary", "fingerprint": "e0e3502a16644ed5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ba4da2365d95189", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/app/api/mobile/conversations/[id]/contact/route.ts:10"}, "properties": {"repobilityId": "a09e92185383177d", "scanner": "scanner-primary", "fingerprint": "4ba4da2365d95189", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68d9ce6650e7179a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/mobile/conversations/[id]/bot-mode/route.ts:3"}, "properties": {"repobilityId": "a2d55dbb8aedc138", "scanner": "scanner-primary", "fingerprint": "68d9ce6650e7179a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94fd569e743766c2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/mobile/conversations/[id]/messages/route.ts:15"}, "properties": {"repobilityId": "f29f742026bed35a", "scanner": "scanner-primary", "fingerprint": "94fd569e743766c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d56f0493d1af3fc4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/mobile/templates/route.ts:10"}, "properties": {"repobilityId": "bc5619a07516d48f", "scanner": "scanner-primary", "fingerprint": "d56f0493d1af3fc4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e9878f8593796ea", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/mobile/search/route.ts:9"}, "properties": {"repobilityId": "08695025467f15b2", "scanner": "scanner-primary", "fingerprint": "2e9878f8593796ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5934f75fe753e7c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/mobile/contacts/[id]/tags/route.ts:13"}, "properties": {"repobilityId": "c17ab230b1d27cd1", "scanner": "scanner-primary", "fingerprint": "b5934f75fe753e7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48308c2150e98614", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/mobile/_lib/auth.ts:6"}, "properties": {"repobilityId": "57bd68b9aa0e5d97", "scanner": "scanner-primary", "fingerprint": "48308c2150e98614", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b638658494faa66f", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/api/mobile/quick-replies/route.ts:11"}, "properties": {"repobilityId": "45383d7f284b1068", "scanner": "scanner-primary", "fingerprint": "b638658494faa66f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b54ef342dc6b9b3b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/contact-review/[token]/route.ts:1"}, "properties": {"repobilityId": "8d3264fd940c0b65", "scanner": "scanner-primary", "fingerprint": "b54ef342dc6b9b3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a40e6e8edd95834", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/sandbox/process/route.ts:133"}, "properties": {"repobilityId": "f97d7a96d55471f3", "scanner": "scanner-primary", "fingerprint": "8a40e6e8edd95834", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b796a9c8cc50b5ad", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/sandbox/process/route.ts:184"}, "properties": {"repobilityId": "32c84c0dd4f1d02c", "scanner": "scanner-primary", "fingerprint": "b796a9c8cc50b5ad", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5fe81ae2deb40a15", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/sandbox/process/__tests__/route-v4-lock.test.ts:188"}, "properties": {"repobilityId": "bbba8365c312c627", "scanner": "scanner-primary", "fingerprint": "5fe81ae2deb40a15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7f0e995f86e1c54", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/sandbox/lock-result/[sandboxSessionId]/__tests__/route.test.ts:21"}, "properties": {"repobilityId": "8dba7f89ea9a4bec", "scanner": "scanner-primary", "fingerprint": "a7f0e995f86e1c54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ca24b2588a0142f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/builder/sessions/route.ts:1"}, "properties": {"repobilityId": "aaf9f092f22d304d", "scanner": "scanner-primary", "fingerprint": "9ca24b2588a0142f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99deed147448c36f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/builder/chat/route.ts:1"}, "properties": {"repobilityId": "b850d8b99ee11611", "scanner": "scanner-primary", "fingerprint": "99deed147448c36f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cedbb57a62a66399", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/webhooks/meta/route.ts:5"}, "properties": {"repobilityId": "4e6991f0e10aeeee", "scanner": "scanner-primary", "fingerprint": "cedbb57a62a66399", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-493a767a5dcff23e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/webhooks/whatsapp/route.ts:102"}, "properties": {"repobilityId": "a5349108fcbb4edd", "scanner": "scanner-primary", "fingerprint": "493a767a5dcff23e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f8a7c04fd022b3f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/webhooks/shopify/route.ts:1"}, "properties": {"repobilityId": "e2bf3461d42ab066", "scanner": "scanner-primary", "fingerprint": "1f8a7c04fd022b3f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecc0b599e7d63a02", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/webhooks/robot-callback/route.ts:1"}, "properties": {"repobilityId": "fcb32c52de73b4f4", "scanner": "scanner-primary", "fingerprint": "ecc0b599e7d63a02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08cad9216f7e4de0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/fonts.ts:7"}, "properties": {"repobilityId": "e61d0e384fd60ab5", "scanner": "scanner-primary", "fingerprint": "08cad9216f7e4de0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3be4c1cf8ad116c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/layout.tsx:22"}, "properties": {"repobilityId": "f419196e21de3692", "scanner": "scanner-primary", "fingerprint": "a3be4c1cf8ad116c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b05be93995e81bb7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/page.tsx:1"}, "properties": {"repobilityId": "1a65b32559ef8014", "scanner": "scanner-primary", "fingerprint": "b05be93995e81bb7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c25804da1bca5a07", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/whatsapp-bubble.tsx:3"}, "properties": {"repobilityId": "108155b60852218a", "scanner": "scanner-primary", "fingerprint": "c25804da1bca5a07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aecf39c30db6b59a", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/suggested-action-chips.tsx:3"}, "properties": {"repobilityId": "ce4e5252aa24ff22", "scanner": "scanner-primary", "fingerprint": "aecf39c30db6b59a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4157e979f4add58b", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/chat-pane.tsx:3"}, "properties": {"repobilityId": "c732b7cc6fc73176", "scanner": "scanner-primary", "fingerprint": "4157e979f4add58b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1f45d7397c69b80", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/chat-pane.tsx:67"}, "properties": {"repobilityId": "1afd43f1e63aa9a0", "scanner": "scanner-primary", "fingerprint": "d1f45d7397c69b80", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-708c06e649cf6b68", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/preview-pane.tsx:3"}, "properties": {"repobilityId": "07dbf6dd59b25bd5", "scanner": "scanner-primary", "fingerprint": "708c06e649cf6b68", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6aa4797e626b6a7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/template-draft-context.tsx:3"}, "properties": {"repobilityId": "5441f875f517ef6c", "scanner": "scanner-primary", "fingerprint": "a6aa4797e626b6a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f44f33af950e450f", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/image-uploader.tsx:3"}, "properties": {"repobilityId": "1a0b110e5bc81918", "scanner": "scanner-primary", "fingerprint": "f44f33af950e450f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69202d36db076be0", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/chat-message.tsx:3"}, "properties": {"repobilityId": "e87d460508fb4e59", "scanner": "scanner-primary", "fingerprint": "69202d36db076be0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-151fcbb9f6e34659", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/template-builder-layout.tsx:3"}, "properties": {"repobilityId": "bd8ef9aa9d3a844c", "scanner": "scanner-primary", "fingerprint": "151fcbb9f6e34659", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4bceeed68335db50", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/configuracion/integraciones/page.tsx:1"}, "properties": {"repobilityId": "aa48f2b41ad5a076", "scanner": "scanner-primary", "fingerprint": "4bceeed68335db50", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-919f5d1844fd297a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/configuracion/integraciones/components/bold-form.tsx:3"}, "properties": {"repobilityId": "624327bf2d41766e", "scanner": "scanner-primary", "fingerprint": "919f5d1844fd297a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-872d5e01b2a04549", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/(dashboard)/configuracion/integraciones/components/shopify-form.tsx:8"}, "properties": {"repobilityId": "aed8cb9a12e69354", "scanner": "scanner-primary", "fingerprint": "872d5e01b2a04549", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9813012b6666e758", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/(dashboard)/configuracion/integraciones/components/sms-tab.tsx:5"}, "properties": {"repobilityId": "542d6c1594f64104", "scanner": "scanner-primary", "fingerprint": "9813012b6666e758", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9296712175573ab0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/agentes/routing/page.tsx:1"}, "properties": {"repobilityId": "f13de5228e2bb0af", "scanner": "scanner-primary", "fingerprint": "9296712175573ab0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9b1224df136da21", "level": "note", "message": {"text": "Legacy-named symbol `fallback_legacy` in src/app/(dashboard)/agentes/routing/audit/page.tsx:19"}, "properties": {"repobilityId": "a47d4f27680ff1ad", "scanner": "scanner-primary", "fingerprint": "d9b1224df136da21", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7bb86c12dea1a773", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/agentes/routing/audit/page.tsx:1"}, "properties": {"repobilityId": "84d4aca7c3ebae31", "scanner": "scanner-primary", "fingerprint": "7bb86c12dea1a773", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8eb777bd3a50c542", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/(dashboard)/agentes/routing/editor/_components/TagPicker.tsx:3"}, "properties": {"repobilityId": "a3aa5ede1542dd8a", "scanner": "scanner-primary", "fingerprint": "8eb777bd3a50c542", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e2df9283c648cad", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/(dashboard)/agentes/routing/editor/_components/ConditionBuilder.tsx:3"}, "properties": {"repobilityId": "1847b2ef0955eaf2", "scanner": "scanner-primary", "fingerprint": "8e2df9283c648cad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22b77a082c657b44", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/(dashboard)/agentes/routing/editor/_components/SimulateButton.tsx:3"}, "properties": {"repobilityId": "4344f6be2828c51d", "scanner": "scanner-primary", "fingerprint": "22b77a082c657b44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd5d8865c6ec9a1e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/agentes/routing/editor/_components/MultiSelect.tsx:7"}, "properties": {"repobilityId": "452018f193f87147", "scanner": "scanner-primary", "fingerprint": "bd5d8865c6ec9a1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b535ce96361c446b", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/app/(dashboard)/agentes/routing/editor/_components/editor-client.tsx:6"}, "properties": {"repobilityId": "5022dcd544c20d27", "scanner": "scanner-primary", "fingerprint": "b535ce96361c446b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c11158d254f582e", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/app/(dashboard)/agentes/content-editor/_components/AgentSelector.tsx:13"}, "properties": {"repobilityId": "24a208136c312877", "scanner": "scanner-primary", "fingerprint": "4c11158d254f582e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49f57d798ad6a405", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/agentes/content-editor/_components/KbTopicForm.tsx:13"}, "properties": {"repobilityId": "619694eb6f4cc286", "scanner": "scanner-primary", "fingerprint": "49f57d798ad6a405", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa9d820557e0019d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/agentes/content-editor/_components/TemplateForm.tsx:8"}, "properties": {"repobilityId": "50c49c6c1b1a4f5a", "scanner": "scanner-primary", "fingerprint": "aa9d820557e0019d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18844147e2b5a00e", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/app/(dashboard)/agentes/content-editor/_components/TemplatesPanel.tsx:8"}, "properties": {"repobilityId": "2de0876efa06d09b", "scanner": "scanner-primary", "fingerprint": "18844147e2b5a00e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c99201548e34d923", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/agentes/content-editor/_components/KnowledgePanel.tsx:8"}, "properties": {"repobilityId": "433383086ed095e8", "scanner": "scanner-primary", "fingerprint": "c99201548e34d923", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b1c3fb590b0195e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/(dashboard)/agentes/content-editor/_components/KbVersionsPanel.tsx:8"}, "properties": {"repobilityId": "8c941935b3a49ebd", "scanner": "scanner-primary", "fingerprint": "2b1c3fb590b0195e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac70fdb22955f5e6", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/(dashboard)/agentes/content-editor/_components/ContentImageUploader.tsx:8"}, "properties": {"repobilityId": "a2e2fdbb2e0bb94c", "scanner": "scanner-primary", "fingerprint": "ac70fdb22955f5e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-660c50ccb94d6bb1", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:60"}, "properties": {"repobilityId": "f99d19b74a2e421e", "scanner": "scanner-primary", "fingerprint": "660c50ccb94d6bb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e15603ede43a0fea", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:382"}, "properties": {"repobilityId": "a89c97dc7971b6a6", "scanner": "scanner-primary", "fingerprint": "e15603ede43a0fea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1b997b60f41a93d6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/sandbox/components/debug-panel/interruption-tab.tsx:173"}, "properties": {"repobilityId": "77df639dad59908b", "scanner": "scanner-primary", "fingerprint": "1b997b60f41a93d6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d1f00ab59253560d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/sandbox/components/debug-panel/panel-container.tsx:40"}, "properties": {"repobilityId": "3dd8d28fd4873666", "scanner": "scanner-primary", "fingerprint": "d1f00ab59253560d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bb34b8c748fb9db", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/page.tsx:30"}, "properties": {"repobilityId": "d0685a7559e2a661", "scanner": "scanner-primary", "fingerprint": "0bb34b8c748fb9db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9f212ec02de981a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/contact-panel.tsx:246"}, "properties": {"repobilityId": "b1d90fadc7d934f0", "scanner": "scanner-primary", "fingerprint": "d9f212ec02de981a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb23550e2b1db7eb", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/interactive-bubble.tsx:3"}, "properties": {"repobilityId": "69e4580988b15bca", "scanner": "scanner-primary", "fingerprint": "fb23550e2b1db7eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-119ff47d546936e4", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/app/(dashboard)/whatsapp/components/inbox-layout.tsx:95"}, "properties": {"repobilityId": "c8f8863d2eca0f46", "scanner": "scanner-primary", "fingerprint": "119ff47d546936e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9555d0ceb2d6416e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/message-bubble.tsx:175"}, "properties": {"repobilityId": "67eb6abff22537d2", "scanner": "scanner-primary", "fingerprint": "9555d0ceb2d6416e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66c6e48bdf0b2533", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/(dashboard)/whatsapp/components/conversation-list.tsx:47"}, "properties": {"repobilityId": "1f9bb249b0eef860", "scanner": "scanner-primary", "fingerprint": "66c6e48bdf0b2533", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b40d18a29e22bd3e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/chat-header.tsx:324"}, "properties": {"repobilityId": "df1b67fd5cebb804", "scanner": "scanner-primary", "fingerprint": "b40d18a29e22bd3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-214f1e096db06d0d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/bold-payment-link-button.tsx:3"}, "properties": {"repobilityId": "0b92fdb297ae1a92", "scanner": "scanner-primary", "fingerprint": "214f1e096db06d0d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b7cdffd65f60881", "level": "note", "message": {"text": "Legacy-named symbol `ui_inbox_v2` in src/app/(dashboard)/whatsapp/components/inbox-v3-context.tsx:17"}, "properties": {"repobilityId": "ec82c0012a31c65c", "scanner": "scanner-primary", "fingerprint": "6b7cdffd65f60881", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-132c322dfe029f2f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/interactive-composer-modal.tsx:3"}, "properties": {"repobilityId": "f462553147f3a0b2", "scanner": "scanner-primary", "fingerprint": "132c322dfe029f2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9498bdfef1de687", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/chat-view.tsx:132"}, "properties": {"repobilityId": "065938194af90562", "scanner": "scanner-primary", "fingerprint": "c9498bdfef1de687", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1f992d5d1501d2f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/whatsapp/components/chat-view.tsx:305"}, "properties": {"repobilityId": "d82ca741f2d9e6bb", "scanner": "scanner-primary", "fingerprint": "d1f992d5d1501d2f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a39f012cfc377874", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/message-input.tsx:76"}, "properties": {"repobilityId": "5c4d098ef9af6d96", "scanner": "scanner-primary", "fingerprint": "a39f012cfc377874", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8c7f5bdf66aa08c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/conversation-item.tsx:68"}, "properties": {"repobilityId": "3975d2beaa7b9702", "scanner": "scanner-primary", "fingerprint": "f8c7f5bdf66aa08c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74c0bf0d3b5da58d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/whatsapp/components/interactive-composer-button.tsx:3"}, "properties": {"repobilityId": "6e6baa0049e57ad9", "scanner": "scanner-primary", "fingerprint": "74c0bf0d3b5da58d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69eef321acda5279", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/whatsapp/components/__tests__/selection-derivation.test.tsx:62"}, "properties": {"repobilityId": "76de1adaddbd4669", "scanner": "scanner-primary", "fingerprint": "69eef321acda5279", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a09a6c4c3b1d9132", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/whatsapp/components/debug-panel-production/auditor-tab.tsx:112"}, "properties": {"repobilityId": "45d8fb1848475d0f", "scanner": "scanner-primary", "fingerprint": "a09a6c4c3b1d9132", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cde2593ba26adbbb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/whatsapp/components/debug-panel-production/auditor-tab.tsx:147"}, "properties": {"repobilityId": "191ae4c861793359", "scanner": "scanner-primary", "fingerprint": "cde2593ba26adbbb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4e1f0c9bcb9d4950", "level": "note", "message": {"text": "Legacy-named symbol `ui_dashboard_v2` in src/app/(dashboard)/crm/layout.tsx:4"}, "properties": {"repobilityId": "99f3b59434eefb83", "scanner": "scanner-primary", "fingerprint": "4e1f0c9bcb9d4950", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-efc045ef22a36c17", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/app/(dashboard)/crm/pedidos/components/kanban-column.tsx:181"}, "properties": {"repobilityId": "14d1483031db4854", "scanner": "scanner-primary", "fingerprint": "efc045ef22a36c17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c5c3f577d515b82", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/crm/pedidos/components/columns.tsx:23"}, "properties": {"repobilityId": "51d0f26559ef15bb", "scanner": "scanner-primary", "fingerprint": "7c5c3f577d515b82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7be91814fad747ac", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/crm/pedidos/components/orders-view.tsx:166"}, "properties": {"repobilityId": "386d084cc5f6f1c0", "scanner": "scanner-primary", "fingerprint": "7be91814fad747ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d3e28ce59ba9474", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/crm/pedidos/components/pipeline-tabs.tsx:126"}, "properties": {"repobilityId": "85b869169a08665f", "scanner": "scanner-primary", "fingerprint": "6d3e28ce59ba9474", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e117aaf3a4b3a53", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/(dashboard)/crm/pedidos/components/kanban-card.tsx:149"}, "properties": {"repobilityId": "a538cb28ed88baf7", "scanner": "scanner-primary", "fingerprint": "2e117aaf3a4b3a53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-950909eb5c2fa56e", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/(dashboard)/crm/contactos/page.tsx:91"}, "properties": {"repobilityId": "4a5d113b5203490f", "scanner": "scanner-primary", "fingerprint": "950909eb5c2fa56e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a41c8c1ce1050793", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/crm/contactos/components/columns.tsx:25"}, "properties": {"repobilityId": "da676ac2b51abb90", "scanner": "scanner-primary", "fingerprint": "a41c8c1ce1050793", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b9f16c5bb87e42f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/crm/contactos/components/contacts-table.tsx:92"}, "properties": {"repobilityId": "249c1c42d2020b14", "scanner": "scanner-primary", "fingerprint": "9b9f16c5bb87e42f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3559cee0e88f118", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/automatizaciones/builder/components/builder-message.tsx:3"}, "properties": {"repobilityId": "1339d0e362456ac0", "scanner": "scanner-primary", "fingerprint": "d3559cee0e88f118", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-396cffef683d36f6", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/automatizaciones/builder/components/builder-layout.tsx:3"}, "properties": {"repobilityId": "1597281248362cd7", "scanner": "scanner-primary", "fingerprint": "396cffef683d36f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-513fec5c437709d2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/automatizaciones/builder/components/builder-input.tsx:3"}, "properties": {"repobilityId": "60b7cb8591141250", "scanner": "scanner-primary", "fingerprint": "513fec5c437709d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-655ce61ec6e53955", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/(dashboard)/automatizaciones/builder/components/builder-chat.tsx:3"}, "properties": {"repobilityId": "628b141b4335eb38", "scanner": "scanner-primary", "fingerprint": "655ce61ec6e53955", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2048c73edbfa6d1a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/(dashboard)/automatizaciones/builder/components/builder-chat.tsx:44"}, "properties": {"repobilityId": "b93061b968de6583", "scanner": "scanner-primary", "fingerprint": "2048c73edbfa6d1a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7fa09998ca258bd9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/automatizaciones/builder/components/session-history.tsx:3"}, "properties": {"repobilityId": "6eda7e04cadae545", "scanner": "scanner-primary", "fingerprint": "7fa09998ca258bd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7d169325e93638d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/automatizaciones/builder/components/preview-nodes.tsx:3"}, "properties": {"repobilityId": "a7181f72a8aecd39", "scanner": "scanner-primary", "fingerprint": "e7d169325e93638d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65a8f7b46ae3f097", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(dashboard)/confirmaciones/confirmaciones-panel.tsx:345"}, "properties": {"repobilityId": "a58eb01e4a3eefef", "scanner": "scanner-primary", "fingerprint": "65a8f7b46ae3f097", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d72d323a7b77dbb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/contact-review/[token]/page.tsx:27"}, "properties": {"repobilityId": "121400315d4a4be2", "scanner": "scanner-primary", "fingerprint": "2d72d323a7b77dbb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5cfb0a2b394f3d15", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/actions/messages.ts:398"}, "properties": {"repobilityId": "340b84bab48ee5fd", "scanner": "scanner-primary", "fingerprint": "5cfb0a2b394f3d15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0b84c73e0a9ac01", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/app/actions/shopify-oauth.ts:20"}, "properties": {"repobilityId": "a94c3feff9f6c871", "scanner": "scanner-primary", "fingerprint": "c0b84c73e0a9ac01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c742752bd09bfb5", "level": "none", "message": {"text": "Commented-code block (15 lines) in src/app/actions/agent-content-editor.ts:8"}, "properties": {"repobilityId": "4f7d251613540d67", "scanner": "scanner-primary", "fingerprint": "2c742752bd09bfb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53100e302ddc25dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/actions/shopify.ts:3"}, "properties": {"repobilityId": "339c7d9a2042bc12", "scanner": "scanner-primary", "fingerprint": "53100e302ddc25dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cea21573111cf34a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/actions/meta-onboarding.ts:15"}, "properties": {"repobilityId": "ee91f41fd59c88a8", "scanner": "scanner-primary", "fingerprint": "cea21573111cf34a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c28c20b231e5c36e", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/actions/conversations.ts:409"}, "properties": {"repobilityId": "459a6929cc7fc246", "scanner": "scanner-primary", "fingerprint": "c28c20b231e5c36e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26e26d2e8a8efa3a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/actions/integrations.ts:3"}, "properties": {"repobilityId": "95df603e69c28387", "scanner": "scanner-primary", "fingerprint": "26e26d2e8a8efa3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3fa6b3f35a790011", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/app/actions/comandos.ts:7"}, "properties": {"repobilityId": "319044f63393abd4", "scanner": "scanner-primary", "fingerprint": "3fa6b3f35a790011", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9207cba04be5454", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/actions/godentist.ts:126"}, "properties": {"repobilityId": "bffa6fe0d999c45e", "scanner": "scanner-primary", "fingerprint": "f9207cba04be5454", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc3772378d687667", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/actions/bold.ts:3"}, "properties": {"repobilityId": "9ad6d617fedc176a", "scanner": "scanner-primary", "fingerprint": "fc3772378d687667", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27504d03a5099c2e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/(marketing)/fonts.ts:12"}, "properties": {"repobilityId": "4a6e519cb85056b7", "scanner": "scanner-primary", "fingerprint": "27504d03a5099c2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de3cddbad8c0e35d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/carriers/envia-api.ts:1"}, "properties": {"repobilityId": "5c896c16f663c432", "scanner": "scanner-primary", "fingerprint": "de3cddbad8c0e35d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63c07f7b30a1a176", "level": "note", "message": {"text": "Legacy-named symbol `ui_inbox_v2` in src/lib/auth/inbox-v2.ts:7"}, "properties": {"repobilityId": "6c554785c1163cfe", "scanner": "scanner-primary", "fingerprint": "63c07f7b30a1a176", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-453f8bafa6419219", "level": "note", "message": {"text": "Legacy-named symbol `ui_inbox_v2` in src/lib/auth/editorial-v3.ts:15"}, "properties": {"repobilityId": "ac554d5a885d8269", "scanner": "scanner-primary", "fingerprint": "453f8bafa6419219", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6147aeb28de01012", "level": "note", "message": {"text": "Legacy-named symbol `ui_dashboard_v2` in src/lib/auth/dashboard-v2.ts:9"}, "properties": {"repobilityId": "897817f873706d1d", "scanner": "scanner-primary", "fingerprint": "6147aeb28de01012", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e1b1eae490477bfb", "level": "note", "message": {"text": "Legacy-named symbol `ui_inbox_v2` in src/lib/auth/__tests__/editorial-v3.test.ts:68"}, "properties": {"repobilityId": "8b09e493b15bbe69", "scanner": "scanner-primary", "fingerprint": "e1b1eae490477bfb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0b20aa955c354c4b", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/config-builder/templates/system-prompt.ts:5"}, "properties": {"repobilityId": "aa9447f2dc37a9ca", "scanner": "scanner-primary", "fingerprint": "0b20aa955c354c4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a6f967905adfd4b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/config-builder/templates/suggested-actions.ts:1"}, "properties": {"repobilityId": "85ef9579843f2b6e", "scanner": "scanner-primary", "fingerprint": "6a6f967905adfd4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6dbea20b05b52532", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/config-builder/templates/tools.ts:5"}, "properties": {"repobilityId": "9f7767f10cf78bca", "scanner": "scanner-primary", "fingerprint": "6dbea20b05b52532", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-204d5f62214b90d3", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/lib/config-builder/templates/validation.ts:9"}, "properties": {"repobilityId": "43feb7fb7635431c", "scanner": "scanner-primary", "fingerprint": "204d5f62214b90d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-325f40f42328c7a3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/config-builder/templates/types.ts:1"}, "properties": {"repobilityId": "0a64fd9985ca845f", "scanner": "scanner-primary", "fingerprint": "325f40f42328c7a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9cac05827296226d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/config-builder/templates/__tests__/system-prompt.test.ts:4"}, "properties": {"repobilityId": "3d190be0451b4f22", "scanner": "scanner-primary", "fingerprint": "9cac05827296226d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-673e8562fbdfccd7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/media/__tests__/mp4-detect.test.ts:4"}, "properties": {"repobilityId": "36f54341ce8f450c", "scanner": "scanner-primary", "fingerprint": "673e8562fbdfccd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b94070254e174bbb", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agent-forensics/audit-session-store.ts:199"}, "properties": {"repobilityId": "a5c8b0e9b18d70e5", "scanner": "scanner-primary", "fingerprint": "b94070254e174bbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-058214a11d4a35f6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agent-forensics/auditor-prompt.ts:4"}, "properties": {"repobilityId": "b9f1c0f5a50b8be0", "scanner": "scanner-primary", "fingerprint": "058214a11d4a35f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfa082dfc5f7a189", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agent-forensics/__tests__/audit-session-store.test.ts:385"}, "properties": {"repobilityId": "2bd3c9b9ff5cf158", "scanner": "scanner-primary", "fingerprint": "dfa082dfc5f7a189", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b2a142621c65cc6", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/messenger/webhook-handler.ts:4"}, "properties": {"repobilityId": "f71b30978f92f4bc", "scanner": "scanner-primary", "fingerprint": "7b2a142621c65cc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-000080bd9d019fc3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/messenger/__tests__/webhook-handler.test.ts:84"}, "properties": {"repobilityId": "85280e139dbbf1a0", "scanner": "scanner-primary", "fingerprint": "000080bd9d019fc3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab4cc680ea059d17", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/observability/collector.ts:255"}, "properties": {"repobilityId": "292d27ccfb73e0ac", "scanner": "scanner-primary", "fingerprint": "ab4cc680ea059d17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dbc899cf6e1b0c99", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/observability/repository.ts:261"}, "properties": {"repobilityId": "db3de419474cd512", "scanner": "scanner-primary", "fingerprint": "dbc899cf6e1b0c99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff335379207cdcfd", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/observability/flush.ts:117"}, "properties": {"repobilityId": "b6938d5f41b2e1ca", "scanner": "scanner-primary", "fingerprint": "ff335379207cdcfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-077038b85b279eaa", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/meta/api.ts:1"}, "properties": {"repobilityId": "cea9cbd517bd7b27", "scanner": "scanner-primary", "fingerprint": "077038b85b279eaa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bccec76c8cc5422f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/api.ts:31"}, "properties": {"repobilityId": "73933c5b9346c0bd", "scanner": "scanner-primary", "fingerprint": "bccec76c8cc5422f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e3554b71d34ce88b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/meta/instagram-connect.ts:5"}, "properties": {"repobilityId": "a619fdd45ee5ab99", "scanner": "scanner-primary", "fingerprint": "e3554b71d34ce88b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-032e1616faed66f8", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/meta/media.ts:6"}, "properties": {"repobilityId": "d0e31aded147c7cb", "scanner": "scanner-primary", "fingerprint": "032e1616faed66f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab4d75393e7ecdae", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/media.ts:168"}, "properties": {"repobilityId": "448e70d68330a818", "scanner": "scanner-primary", "fingerprint": "ab4d75393e7ecdae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2d64503fb054e3e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/meta/credentials.ts:1"}, "properties": {"repobilityId": "a99131cc464e60a4", "scanner": "scanner-primary", "fingerprint": "2d64503fb054e3e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3582d857faee0160", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/meta/messenger-api.ts:5"}, "properties": {"repobilityId": "74d1f8a9b105becf", "scanner": "scanner-primary", "fingerprint": "3582d857faee0160", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39dce99574493774", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/meta/constants.ts:1"}, "properties": {"repobilityId": "69afd063396cac6a", "scanner": "scanner-primary", "fingerprint": "39dce99574493774", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a9f8e8a6912aafa", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/lib/meta/instagram-api.ts:5"}, "properties": {"repobilityId": "55f3728f4f2b901c", "scanner": "scanner-primary", "fingerprint": "7a9f8e8a6912aafa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be06a78f3756ab78", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/meta/templates.ts:10"}, "properties": {"repobilityId": "eebc588209b7d8c1", "scanner": "scanner-primary", "fingerprint": "be06a78f3756ab78", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-041dc36cfc95015b", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/meta/messenger-connect.ts:12"}, "properties": {"repobilityId": "3a43ee7a4c5b54fb", "scanner": "scanner-primary", "fingerprint": "041dc36cfc95015b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5118773f9d89421", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/messenger-connect.ts:25"}, "properties": {"repobilityId": "7c4d510362778f3c", "scanner": "scanner-primary", "fingerprint": "f5118773f9d89421", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6d5661553ac7284c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/meta/embedded-signup.ts:9"}, "properties": {"repobilityId": "848e72035c55d1c5", "scanner": "scanner-primary", "fingerprint": "6d5661553ac7284c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d87c88532d4d7c9b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/embedded-signup.ts:12"}, "properties": {"repobilityId": "aca1d28d4bab5273", "scanner": "scanner-primary", "fingerprint": "d87c88532d4d7c9b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3fd142ab2f400fd5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/meta/register-errors.ts:1"}, "properties": {"repobilityId": "cb4126169f2138dd", "scanner": "scanner-primary", "fingerprint": "3fd142ab2f400fd5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97c4c034948073c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/meta/token.ts:1"}, "properties": {"repobilityId": "2d11049068e3efcd", "scanner": "scanner-primary", "fingerprint": "97c4c034948073c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb05987ddf29fb78", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/__tests__/messenger-api.test.ts:12"}, "properties": {"repobilityId": "da8ae855fafd55b6", "scanner": "scanner-primary", "fingerprint": "eb05987ddf29fb78", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3c158ad47af75dfd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/__tests__/send.test.ts:11"}, "properties": {"repobilityId": "747004512be611ee", "scanner": "scanner-primary", "fingerprint": "3c158ad47af75dfd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f697849f2df3ba38", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/meta/__tests__/instagram-api.test.ts:13"}, "properties": {"repobilityId": "4f12e45421894fdd", "scanner": "scanner-primary", "fingerprint": "f697849f2df3ba38", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4c2e041a0736c290", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/sandbox/sandbox-engine.ts:316"}, "properties": {"repobilityId": "38a05d544c681ca3", "scanner": "scanner-primary", "fingerprint": "4c2e041a0736c290", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44f2dca6770be43a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/sandbox/types.ts:204"}, "properties": {"repobilityId": "e502863dbd5643b6", "scanner": "scanner-primary", "fingerprint": "44f2dca6770be43a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c0374ad2f0598b9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/sandbox/types.ts:388"}, "properties": {"repobilityId": "ec8305ea53069daf", "scanner": "scanner-primary", "fingerprint": "3c0374ad2f0598b9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a678b726a0580034", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/session-manager.ts:137"}, "properties": {"repobilityId": "aa29cf8e15c8a823", "scanner": "scanner-primary", "fingerprint": "a678b726a0580034", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc0f8e3d5fef3f31", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/routing/cache.ts:97"}, "properties": {"repobilityId": "c3c9beaa83ece622", "scanner": "scanner-primary", "fingerprint": "dc0f8e3d5fef3f31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e68d10eea88fd37", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/routing/agent-module-registry.ts:99"}, "properties": {"repobilityId": "4ddff7bbfd2aaddc", "scanner": "scanner-primary", "fingerprint": "7e68d10eea88fd37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a95f0f7879a9ed9", "level": "note", "message": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/route.ts:18"}, "properties": {"repobilityId": "3f9509d4563d290e", "scanner": "scanner-primary", "fingerprint": "5a95f0f7879a9ed9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4086f7e530d4855e", "level": "note", "message": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/dry-run.ts:75"}, "properties": {"repobilityId": "508e3165785e0a46", "scanner": "scanner-primary", "fingerprint": "4086f7e530d4855e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a378ebc23c6c6433", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/agents/routing/dry-run.ts:10"}, "properties": {"repobilityId": "352862e52f660583", "scanner": "scanner-primary", "fingerprint": "a378ebc23c6c6433", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7875114f79e524c", "level": "note", "message": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/integrate.ts:13"}, "properties": {"repobilityId": "6795f5603ff8eb58", "scanner": "scanner-primary", "fingerprint": "a7875114f79e524c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4ae07cd2abea10c8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/routing/__tests__/domain-extensions.test.ts:5"}, "properties": {"repobilityId": "372eb9dd97e6e12c", "scanner": "scanner-primary", "fingerprint": "4ae07cd2abea10c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28aa6ded005e7596", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/routing/__tests__/operators.test.ts:6"}, "properties": {"repobilityId": "ba575bbd425a1efb", "scanner": "scanner-primary", "fingerprint": "28aa6ded005e7596", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67144b6b63922432", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/agents/routing/__tests__/schema.test.ts:5"}, "properties": {"repobilityId": "c7c7ec6e6edd163a", "scanner": "scanner-primary", "fingerprint": "67144b6b63922432", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a410a0a75b52d61c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/routing/__tests__/fixtures.ts:5"}, "properties": {"repobilityId": "a93a723b34e9ad89", "scanner": "scanner-primary", "fingerprint": "a410a0a75b52d61c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b2a3d82a908ed9d", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/agents/routing/__tests__/engine.test.ts:4"}, "properties": {"repobilityId": "92408431cee569e4", "scanner": "scanner-primary", "fingerprint": "3b2a3d82a908ed9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e89a4e50696cba3", "level": "note", "message": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/__tests__/integrate.test.ts:12"}, "properties": {"repobilityId": "ecbd280db75965d0", "scanner": "scanner-primary", "fingerprint": "9e89a4e50696cba3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c2c9d70a23b9eb5f", "level": "note", "message": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/__tests__/domain.test.ts:119"}, "properties": {"repobilityId": "230b5329adc205d6", "scanner": "scanner-primary", "fingerprint": "c2c9d70a23b9eb5f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2fa0c49648a33ad4", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/agents/routing/__tests__/domain.test.ts:5"}, "properties": {"repobilityId": "73ab3e45d683bb29", "scanner": "scanner-primary", "fingerprint": "2fa0c49648a33ad4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5244ac980c7f5104", "level": "note", "message": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/__tests__/dry-run.test.ts:16"}, "properties": {"repobilityId": "ceabbc3988d668e1", "scanner": "scanner-primary", "fingerprint": "5244ac980c7f5104", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dd00e4e43bec5d3c", "level": "none", "message": {"text": "Commented-code block (18 lines) in src/lib/agents/routing/__tests__/dry-run.test.ts:4"}, "properties": {"repobilityId": "0d9b2db4c9855436", "scanner": "scanner-primary", "fingerprint": "dd00e4e43bec5d3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd3034706ea720aa", "level": "note", "message": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/routing/__tests__/route.test.ts:145"}, "properties": {"repobilityId": "327c8edabcc41c27", "scanner": "scanner-primary", "fingerprint": "bd3034706ea720aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b58a8fb49ad18fc2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/routing/__tests__/route.test.ts:4"}, "properties": {"repobilityId": "583a58fba3895c0b", "scanner": "scanner-primary", "fingerprint": "b58a8fb49ad18fc2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0dc9aa3c3d096459", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/agents/routing/__tests__/cache.test.ts:4"}, "properties": {"repobilityId": "7a2f33875d5cecd9", "scanner": "scanner-primary", "fingerprint": "0dc9aa3c3d096459", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-231acda927cd7875", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/agents/media/image-classifier.ts:101"}, "properties": {"repobilityId": "6e6e60683b9e2816", "scanner": "scanner-primary", "fingerprint": "231acda927cd7875", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-79f203f8ebb4f00e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/shared/crm-mutation-tools/tasks.ts:111"}, "properties": {"repobilityId": "608c9f1cd85cadba", "scanner": "scanner-primary", "fingerprint": "79f203f8ebb4f00e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7cfe0fbecaca5ca", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/shared/crm-mutation-tools/notes.ts:98"}, "properties": {"repobilityId": "405aa05ddaa687e1", "scanner": "scanner-primary", "fingerprint": "f7cfe0fbecaca5ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76a905c3986ec027", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/agents/shared/crm-mutation-tools/orders.ts:63"}, "properties": {"repobilityId": "66c7ccfc68e416b1", "scanner": "scanner-primary", "fingerprint": "76a905c3986ec027", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea5e8f05eb234301", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/shared/crm-mutation-tools/contacts.ts:214"}, "properties": {"repobilityId": "6060f16e7c50f808", "scanner": "scanner-primary", "fingerprint": "ea5e8f05eb234301", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afa31865af8fe114", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-recompra/somnio-recompra-agent.ts:253"}, "properties": {"repobilityId": "741b4dbeaf9796b6", "scanner": "scanner-primary", "fingerprint": "afa31865af8fe114", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8c7aeaf283cd646", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-recompra/response-track.ts:28"}, "properties": {"repobilityId": "7e49418ea4cfef24", "scanner": "scanner-primary", "fingerprint": "a8c7aeaf283cd646", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2db71a41fcd73983", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/somnio-pw-confirmation/sales-track.ts:134"}, "properties": {"repobilityId": "3a7be2dad1aedb12", "scanner": "scanner-primary", "fingerprint": "2db71a41fcd73983", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66c80264cd8829be", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/somnio-pw-confirmation/transitions.ts:85"}, "properties": {"repobilityId": "a75656495852997e", "scanner": "scanner-primary", "fingerprint": "66c80264cd8829be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd124fb031ecb477", "level": "note", "message": {"text": "Legacy-named symbol `pedido_recibido_v2` in src/lib/agents/somnio-pw-confirmation/state.ts:128"}, "properties": {"repobilityId": "b61c31a718b67eb5", "scanner": "scanner-primary", "fingerprint": "cd124fb031ecb477", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-03d0461080eca701", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/agents/somnio-pw-confirmation/somnio-pw-confirmation-agent.ts:265"}, "properties": {"repobilityId": "7e37911bdd65059d", "scanner": "scanner-primary", "fingerprint": "03d0461080eca701", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9f476174f9b0f1b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-pw-confirmation/response-track.ts:199"}, "properties": {"repobilityId": "d521bd9522803815", "scanner": "scanner-primary", "fingerprint": "e9f476174f9b0f1b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ac779ee248cf750", "level": "note", "message": {"text": "Legacy-named symbol `pedido_recibido_v2` in src/lib/agents/somnio-pw-confirmation/comprehension-prompt.ts:134"}, "properties": {"repobilityId": "d3448371ea398eaa", "scanner": "scanner-primary", "fingerprint": "2ac779ee248cf750", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9caf45c81886aa41", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-pw-confirmation/__tests__/response-track.test.ts:26"}, "properties": {"repobilityId": "800d471396ad0bd9", "scanner": "scanner-primary", "fingerprint": "9caf45c81886aa41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d0bb0bfacc05b80", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/varixcenter/sales-track.ts:1"}, "properties": {"repobilityId": "8eb738269cf5eb95", "scanner": "scanner-primary", "fingerprint": "1d0bb0bfacc05b80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29186cdd451aef99", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/agents/varixcenter/transitions.ts:1"}, "properties": {"repobilityId": "66e8bcd4876657df", "scanner": "scanner-primary", "fingerprint": "29186cdd451aef99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2f8192d7f5d5110", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/varixcenter/constants.ts:238"}, "properties": {"repobilityId": "3632d4b86989268f", "scanner": "scanner-primary", "fingerprint": "a2f8192d7f5d5110", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c45d0b1659d8969c", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/agents/varixcenter/state.ts:1"}, "properties": {"repobilityId": "0b886ceb9a048131", "scanner": "scanner-primary", "fingerprint": "c45d0b1659d8969c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2651e8f98f426bc8", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/varixcenter/comprehension-schema.ts:1"}, "properties": {"repobilityId": "5b1b6eb9c1820f6b", "scanner": "scanner-primary", "fingerprint": "2651e8f98f426bc8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fd3838740978bd3", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/agents/varixcenter/response-track.ts:6"}, "properties": {"repobilityId": "4e4ef5073a566aa3", "scanner": "scanner-primary", "fingerprint": "7fd3838740978bd3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b1c57ec896288b2", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/agents/varixcenter/comprehension-prompt.ts:1"}, "properties": {"repobilityId": "7ba4852493336b69", "scanner": "scanner-primary", "fingerprint": "9b1c57ec896288b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2cfbe32f091b3bf0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/production/agent-config.ts:1"}, "properties": {"repobilityId": "1df105b9825aba63", "scanner": "scanner-primary", "fingerprint": "2cfbe32f091b3bf0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1aca4c43b15280fc", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/production/metrics.ts:1"}, "properties": {"repobilityId": "aef9471d2ad57517", "scanner": "scanner-primary", "fingerprint": "1aca4c43b15280fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b74326f382547f2", "level": "note", "message": {"text": "Legacy-named symbol `router_failed_fallback_legacy` in src/lib/agents/production/webhook-processor.ts:239"}, "properties": {"repobilityId": "5a94f22d801674a1", "scanner": "scanner-primary", "fingerprint": "2b74326f382547f2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-633a3e536943c9b2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/production/webhook-processor.ts:214"}, "properties": {"repobilityId": "8bcb2c5e882e5164", "scanner": "scanner-primary", "fingerprint": "633a3e536943c9b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fefe58892a05b20", "level": "note", "message": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/production/__tests__/webhook-processor-routing.test.ts:28"}, "properties": {"repobilityId": "1769758a7b5b5907", "scanner": "scanner-primary", "fingerprint": "4fefe58892a05b20", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-460d0d51c5b89f66", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/agents/production/__tests__/webhook-processor-routing.test.ts:357"}, "properties": {"repobilityId": "590f3c85c473541a", "scanner": "scanner-primary", "fingerprint": "460d0d51c5b89f66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fcc4728055c850e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/somnio/message-category-classifier.ts:64"}, "properties": {"repobilityId": "d5d547b57a17b224", "scanner": "scanner-primary", "fingerprint": "5fcc4728055c850e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1996bcac9d5c54ee", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio/somnio-agent.ts:714"}, "properties": {"repobilityId": "5f07186ca12e72b5", "scanner": "scanner-primary", "fingerprint": "1996bcac9d5c54ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f82c4c7e16dcc801", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio/__tests__/char-delay.test.ts:32"}, "properties": {"repobilityId": "2c58570826baafba", "scanner": "scanner-primary", "fingerprint": "f82c4c7e16dcc801", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d92a08a265d5253c", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/godentist-fb-ig/sales-track.ts:86"}, "properties": {"repobilityId": "84547ced5c158e84", "scanner": "scanner-primary", "fingerprint": "d92a08a265d5253c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41af77d6774d36da", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/engine/unified-engine.ts:448"}, "properties": {"repobilityId": "0d5efd9458a54b23", "scanner": "scanner-primary", "fingerprint": "41af77d6774d36da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bebb00a79b0ec91b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/engine/v4-production-runner.ts:113"}, "properties": {"repobilityId": "ea755567857e8993", "scanner": "scanner-primary", "fingerprint": "bebb00a79b0ec91b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-567ec5aab4ca0f88", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/agents/engine/v3-production-runner.ts:164"}, "properties": {"repobilityId": "f88763deedf553c3", "scanner": "scanner-primary", "fingerprint": "567ec5aab4ca0f88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0518ab7eff390a5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/engine/__tests__/v4-production-runner-restart.test.ts:52"}, "properties": {"repobilityId": "dc59c295c6642a6c", "scanner": "scanner-primary", "fingerprint": "c0518ab7eff390a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94f840598910792b", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/engine/__tests__/v4-production-runner-pathb.test.ts:345"}, "properties": {"repobilityId": "61c87a007f4986be", "scanner": "scanner-primary", "fingerprint": "94f840598910792b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f20dcb6c7736ac69", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/engine-adapters/production/v4-messaging-adapter.ts:162"}, "properties": {"repobilityId": "6455d65df7fd21eb", "scanner": "scanner-primary", "fingerprint": "f20dcb6c7736ac69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fcbd646c97a34ca", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/engine-adapters/production/crm-writer-adapter.ts:257"}, "properties": {"repobilityId": "ab45002329020e2a", "scanner": "scanner-primary", "fingerprint": "4fcbd646c97a34ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ebcbca86a0631ce", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/engine-adapters/production/messaging.ts:303"}, "properties": {"repobilityId": "cd2adad0bfc6feb9", "scanner": "scanner-primary", "fingerprint": "7ebcbca86a0631ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0c0ed0e9b5a5fd9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/engine-adapters/production/index.ts:48"}, "properties": {"repobilityId": "63eaec1a1d92817e", "scanner": "scanner-primary", "fingerprint": "d0c0ed0e9b5a5fd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-649af059b1361608", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/crm-writer/config.ts:47"}, "properties": {"repobilityId": "b47944417016d800", "scanner": "scanner-primary", "fingerprint": "649af059b1361608", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21fc2eb253a9ba9a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/crm-writer/two-step.ts:135"}, "properties": {"repobilityId": "cbbf536ba95773ce", "scanner": "scanner-primary", "fingerprint": "21fc2eb253a9ba9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a13a3da5b0032e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v3/sales-track.ts:138"}, "properties": {"repobilityId": "237460089d874bfa", "scanner": "scanner-primary", "fingerprint": "7a13a3da5b0032e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d4601a4cb6a1bca", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/interruption-system-v2/__tests__/restart-loop.test.ts:27"}, "properties": {"repobilityId": "96a15648de45d79b", "scanner": "scanner-primary", "fingerprint": "2d4601a4cb6a1bca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b3d182db74ea997", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/interruption-system-v2/__tests__/pending.test.ts:225"}, "properties": {"repobilityId": "62471c66d07d72b8", "scanner": "scanner-primary", "fingerprint": "3b3d182db74ea997", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a12465fd4f2d449", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/lib/agents/somnio-v4/somnio-v4-agent.ts:64"}, "properties": {"repobilityId": "e39501aa63fdd950", "scanner": "scanner-primary", "fingerprint": "5a12465fd4f2d449", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20e468840d0c833e", "level": "note", "message": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/agents/somnio-v4/index.ts:23"}, "properties": {"repobilityId": "e1cdd46ae9a464b1", "scanner": "scanner-primary", "fingerprint": "20e468840d0c833e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9a3dd3ee58dfc9ab", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/sales-track.ts:141"}, "properties": {"repobilityId": "26f2257b4ff7b5ea", "scanner": "scanner-primary", "fingerprint": "9a3dd3ee58dfc9ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-567d4c9f305f87ae", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/somnio-v4/state.ts:342"}, "properties": {"repobilityId": "0fc86d649b559c37", "scanner": "scanner-primary", "fingerprint": "567d4c9f305f87ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0c8ac8a24f1dba8", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/sandbox-adapters.ts:121"}, "properties": {"repobilityId": "cbf7faba3f5e5ec0", "scanner": "scanner-primary", "fingerprint": "f0c8ac8a24f1dba8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b42e29cecfbf1c1", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/lib/agents/somnio-v4/comprehension.ts:54"}, "properties": {"repobilityId": "447a68d91bcbd595", "scanner": "scanner-primary", "fingerprint": "1b42e29cecfbf1c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01fd8ad61902116c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/engine-v4.ts:55"}, "properties": {"repobilityId": "49d1f7233e144112", "scanner": "scanner-primary", "fingerprint": "01fd8ad61902116c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-057d0a04ab37f0fc", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/__tests__/comprehension-fallback-parity.test.ts:250"}, "properties": {"repobilityId": "290cbe8e288932db", "scanner": "scanner-primary", "fingerprint": "057d0a04ab37f0fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52e2b50a7ab70607", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/__tests__/engine-v4-lock.test.ts:34"}, "properties": {"repobilityId": "df63198515c76676", "scanner": "scanner-primary", "fingerprint": "52e2b50a7ab70607", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e33ad2cecd2441f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/__tests__/smoke-hybrid.test.ts:534"}, "properties": {"repobilityId": "30a36ee82cc0530f", "scanner": "scanner-primary", "fingerprint": "4e33ad2cecd2441f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2632b7b53aaa4dd7", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/agents/somnio-v4/__tests__/comprehension-gemini.test.ts:6"}, "properties": {"repobilityId": "b266bb00227335c7", "scanner": "scanner-primary", "fingerprint": "2632b7b53aaa4dd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41c347afb0f0976e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/__tests__/somnio-v4-agent.test.ts:54"}, "properties": {"repobilityId": "bd4a93c0b6e89fb5", "scanner": "scanner-primary", "fingerprint": "41c347afb0f0976e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9fdf91a1997abfd", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/__tests__/state.test.ts:145"}, "properties": {"repobilityId": "78e7b43b68d8f547", "scanner": "scanner-primary", "fingerprint": "e9fdf91a1997abfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-612e5e0404e1a1d8", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/llm-fallback/config.ts:26"}, "properties": {"repobilityId": "29942602c1101564", "scanner": "scanner-primary", "fingerprint": "612e5e0404e1a1d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1303dd8fda33aa87", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/llm-fallback/saturation.ts:28"}, "properties": {"repobilityId": "272787bf41a3081d", "scanner": "scanner-primary", "fingerprint": "1303dd8fda33aa87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb36be6e8a4e98b3", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/agents/somnio-v4/knowledge-base/serialize.ts:1"}, "properties": {"repobilityId": "30ed5ff2355464da", "scanner": "scanner-primary", "fingerprint": "eb36be6e8a4e98b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d9109e62f118d4e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/knowledge-base/sync.ts:35"}, "properties": {"repobilityId": "73b664f1f85505d5", "scanner": "scanner-primary", "fingerprint": "6d9109e62f118d4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cde89756c2abebb0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/knowledge-base/__tests__/serialize.test.ts:1"}, "properties": {"repobilityId": "c294668636c7129d", "scanner": "scanner-primary", "fingerprint": "cde89756c2abebb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12fd60a470c08a65", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/agents/somnio-v4/sub-loop/tooling-call.ts:148"}, "properties": {"repobilityId": "d52842d8e59ce26b", "scanner": "scanner-primary", "fingerprint": "12fd60a470c08a65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45e49956493b2054", "level": "note", "message": {"text": "Legacy-named symbol `ckLegacy` in src/lib/agents/somnio-v4/sub-loop/index.ts:824"}, "properties": {"repobilityId": "c89f80aa6269a8a9", "scanner": "scanner-primary", "fingerprint": "45e49956493b2054", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9ca5b658bc444ce8", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/agents/somnio-v4/sub-loop/index.ts:27"}, "properties": {"repobilityId": "cfa9ef2e59fd5b36", "scanner": "scanner-primary", "fingerprint": "9ca5b658bc444ce8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7803a4a96ca49cd", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/few-shots.test.ts:7"}, "properties": {"repobilityId": "cb853b6febd4c3af", "scanner": "scanner-primary", "fingerprint": "f7803a4a96ca49cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c2e1e0cb984a0668", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/output-schema.test.ts:6"}, "properties": {"repobilityId": "def91e54bae93614", "scanner": "scanner-primary", "fingerprint": "c2e1e0cb984a0668", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de84473ab812b070", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/generation-context.test.ts:7"}, "properties": {"repobilityId": "1d973e166969a8b3", "scanner": "scanner-primary", "fingerprint": "de84473ab812b070", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ad3f0de6e405afa", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/kb-search-tool.test.ts:5"}, "properties": {"repobilityId": "669e6fee848f554e", "scanner": "scanner-primary", "fingerprint": "8ad3f0de6e405afa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a66ffefeced50b7c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/sub-loop-e2e.test.ts:14"}, "properties": {"repobilityId": "539b0495c4d34f3a", "scanner": "scanner-primary", "fingerprint": "a66ffefeced50b7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-341565358a6a840f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/safe-output.test.ts:9"}, "properties": {"repobilityId": "d14446b872336f2e", "scanner": "scanner-primary", "fingerprint": "341565358a6a840f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9183d5fcd4b97b73", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/lib/agents/somnio-v4/sub-loop/__tests__/compliance-check.test.ts:9"}, "properties": {"repobilityId": "8f7d7633ae706b93", "scanner": "scanner-primary", "fingerprint": "9183d5fcd4b97b73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96c0160ae5844f6a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/agents/somnio-v4/core/turn-orchestrator.ts:55"}, "properties": {"repobilityId": "6fca899f62f9680c", "scanner": "scanner-primary", "fingerprint": "96c0160ae5844f6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d82025d16efee3c1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/agents/_shared/alerts.ts:39"}, "properties": {"repobilityId": "0ded63745c88e67f", "scanner": "scanner-primary", "fingerprint": "d82025d16efee3c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2928a61d2ab56c1d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/whatsapp/api.ts:32"}, "properties": {"repobilityId": "125e78a92c962151", "scanner": "scanner-primary", "fingerprint": "2928a61d2ab56c1d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1469069f5beec129", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/whatsapp/webhook-handler.ts:22"}, "properties": {"repobilityId": "9c9712c248c3fa7b", "scanner": "scanner-primary", "fingerprint": "1469069f5beec129", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e671b0ee9232b56", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/whatsapp/templates-api.ts:210"}, "properties": {"repobilityId": "228d523f352af57f", "scanner": "scanner-primary", "fingerprint": "9e671b0ee9232b56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1985fc279789c08c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/builder/system-prompt.ts:1"}, "properties": {"repobilityId": "895896a005b5b881", "scanner": "scanner-primary", "fingerprint": "1985fc279789c08c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-944833c49db471e6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/builder/session-store.ts:1"}, "properties": {"repobilityId": "098c2ee4cc80bd95", "scanner": "scanner-primary", "fingerprint": "944833c49db471e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ffc68c730939e93a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/builder/tools.ts:1"}, "properties": {"repobilityId": "1d790a46292ecbc2", "scanner": "scanner-primary", "fingerprint": "ffc68c730939e93a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c0275f02d7c61c4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/builder/validation.ts:1"}, "properties": {"repobilityId": "e6474288c89a5b93", "scanner": "scanner-primary", "fingerprint": "2c0275f02d7c61c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32738193fbc713fb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/builder/diagram-generator.ts:1"}, "properties": {"repobilityId": "42e7422d0415691a", "scanner": "scanner-primary", "fingerprint": "32738193fbc713fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4dc7db37f3de0b2e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/builder/types.ts:1"}, "properties": {"repobilityId": "451f50c9b45f7a9e", "scanner": "scanner-primary", "fingerprint": "4dc7db37f3de0b2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99b67327f3809406", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/bold/client.ts:1"}, "properties": {"repobilityId": "949371eb842eda77", "scanner": "scanner-primary", "fingerprint": "99b67327f3809406", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62c442638a612239", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/supabase/middleware.ts:32"}, "properties": {"repobilityId": "0ecee51a67b43a7c", "scanner": "scanner-primary", "fingerprint": "62c442638a612239", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45f49a4a414ca32d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/supabase/client.ts:15"}, "properties": {"repobilityId": "1ec6b73e8e1f9d55", "scanner": "scanner-primary", "fingerprint": "45f49a4a414ca32d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a6c513e0e7b6a3e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/supabase/admin.ts:5"}, "properties": {"repobilityId": "3db821a68d8b1503", "scanner": "scanner-primary", "fingerprint": "1a6c513e0e7b6a3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c6e650e3881399a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/channels/meta-whatsapp-sender.ts:1"}, "properties": {"repobilityId": "88e5658e1525102b", "scanner": "scanner-primary", "fingerprint": "5c6e650e3881399a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70f39e903cad9658", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/channels/registry.ts:6"}, "properties": {"repobilityId": "7d65c87f45150169", "scanner": "scanner-primary", "fingerprint": "70f39e903cad9658", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ef711b00ac7c62c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/channels/whatsapp-sender.ts:1"}, "properties": {"repobilityId": "8024a1063518eac2", "scanner": "scanner-primary", "fingerprint": "2ef711b00ac7c62c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf9e51d102e2798c", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/channels/meta-instagram-sender.ts:6"}, "properties": {"repobilityId": "12e3e23836dcedd3", "scanner": "scanner-primary", "fingerprint": "bf9e51d102e2798c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-694904e6d2a51d18", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/channels/meta-facebook-sender.ts:6"}, "properties": {"repobilityId": "9c097b738a9d02c6", "scanner": "scanner-primary", "fingerprint": "694904e6d2a51d18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99ff83643e90d41a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/channels/types.ts:1"}, "properties": {"repobilityId": "5490c3f17859b9ff", "scanner": "scanner-primary", "fingerprint": "99ff83643e90d41a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce6827c1da571580", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/automations/variable-resolver.ts:1"}, "properties": {"repobilityId": "e3cb653f8e0dac79", "scanner": "scanner-primary", "fingerprint": "ce6827c1da571580", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c84e2f66ac8572a6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/automations/action-executor.ts:6"}, "properties": {"repobilityId": "7bc3df308e168f1d", "scanner": "scanner-primary", "fingerprint": "c84e2f66ac8572a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8332b872c23c0c7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/automations/constants.ts:1"}, "properties": {"repobilityId": "b1d970079753762e", "scanner": "scanner-primary", "fingerprint": "8332b872c23c0c7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c79de4b99a43f70f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/automations/trigger-emitter.ts:1"}, "properties": {"repobilityId": "afa70ff70d25bb24", "scanner": "scanner-primary", "fingerprint": "c79de4b99a43f70f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef80f32f6919db65", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/automations/condition-evaluator.ts:1"}, "properties": {"repobilityId": "d149a9a22b9ce287", "scanner": "scanner-primary", "fingerprint": "ef80f32f6919db65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfa25ac7d1588b96", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/automations/types.ts:1"}, "properties": {"repobilityId": "fe62655264c08c95", "scanner": "scanner-primary", "fingerprint": "cfa25ac7d1588b96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc586941c50f93ef", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/pdf/generate-envia-excel.ts:67"}, "properties": {"repobilityId": "ebf2d23c6051f908", "scanner": "scanner-primary", "fingerprint": "bc586941c50f93ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60d06356d8ff2e76", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/instagram/webhook-handler.ts:4"}, "properties": {"repobilityId": "1df9d40c78810dfb", "scanner": "scanner-primary", "fingerprint": "60d06356d8ff2e76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35438b5b2af19b64", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/instagram/__tests__/webhook-handler.test.ts:86"}, "properties": {"repobilityId": "5f72c756d20d3c78", "scanner": "scanner-primary", "fingerprint": "35438b5b2af19b64", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7899dd5aca193c5b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/ocr/extract-guide-data.ts:36"}, "properties": {"repobilityId": "7a99730380ea8743", "scanner": "scanner-primary", "fingerprint": "7899dd5aca193c5b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-132735d68c7ee474", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/shopify/oauth-config.ts:12"}, "properties": {"repobilityId": "58b4038ba3a49876", "scanner": "scanner-primary", "fingerprint": "132735d68c7ee474", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c0f9c6fca59f20a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/shopify/connection-test.ts:1"}, "properties": {"repobilityId": "c7446774b183d1c4", "scanner": "scanner-primary", "fingerprint": "3c0f9c6fca59f20a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-104aea53a273a32d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/shopify/connection-test.ts:70"}, "properties": {"repobilityId": "e48847af0ea320d4", "scanner": "scanner-primary", "fingerprint": "104aea53a273a32d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fc9e81016ab47b65", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/shopify/oauth.ts:4"}, "properties": {"repobilityId": "af149d679727c0bc", "scanner": "scanner-primary", "fingerprint": "fc9e81016ab47b65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6339bc4bb001080", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/shopify/oauth.ts:401"}, "properties": {"repobilityId": "2cf23c33d63a1b14", "scanner": "scanner-primary", "fingerprint": "c6339bc4bb001080", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6fddc62e79520e02", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/shopify/phone-distance.ts:1"}, "properties": {"repobilityId": "71b3b5e1cca733ca", "scanner": "scanner-primary", "fingerprint": "6fddc62e79520e02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9267d80430c5dfdf", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/editorial/tag-variant.ts:5"}, "properties": {"repobilityId": "b4bf726177393a52", "scanner": "scanner-primary", "fingerprint": "9267d80430c5dfdf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-634b12c437374db6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/messages-send-idempotent.ts:4"}, "properties": {"repobilityId": "ce909764ba754b19", "scanner": "scanner-primary", "fingerprint": "634b12c437374db6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10170f2acd358cb9", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/domain/agent-templates.ts:7"}, "properties": {"repobilityId": "9236db39f5751509", "scanner": "scanner-primary", "fingerprint": "10170f2acd358cb9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2c4e840302c9ad3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/agent-knowledge-base.ts:7"}, "properties": {"repobilityId": "6d20ce473c1feb44", "scanner": "scanner-primary", "fingerprint": "f2c4e840302c9ad3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c40b6ba0a0851323", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/domain/tags.ts:6"}, "properties": {"repobilityId": "6c1d1409a8d3aa8a", "scanner": "scanner-primary", "fingerprint": "c40b6ba0a0851323", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff9ee44f65382d7d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/workspace-settings.ts:1"}, "properties": {"repobilityId": "e9f53bf73b54aa15", "scanner": "scanner-primary", "fingerprint": "ff9ee44f65382d7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16f4ac4626dc0d23", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/messages.ts:1"}, "properties": {"repobilityId": "bed8a8730b213f5e", "scanner": "scanner-primary", "fingerprint": "16f4ac4626dc0d23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f7c0ba26239b3ed", "level": "note", "message": {"text": "Legacy-named symbol `fallback_legacy` in src/lib/domain/routing.ts:85"}, "properties": {"repobilityId": "c61119a787eff278", "scanner": "scanner-primary", "fingerprint": "1f7c0ba26239b3ed", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cd1b6eddf813b3d9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/meta-accounts.ts:9"}, "properties": {"repobilityId": "ef4b8eab80b347fb", "scanner": "scanner-primary", "fingerprint": "cd1b6eddf813b3d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e02ac49d0eb6c8e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/tasks.ts:1"}, "properties": {"repobilityId": "95947006616abf57", "scanner": "scanner-primary", "fingerprint": "e02ac49d0eb6c8e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac2fc61987d083ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/robot-jobs.ts:1"}, "properties": {"repobilityId": "52f529077f3ec1c1", "scanner": "scanner-primary", "fingerprint": "ac2fc61987d083ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fa957776625a6be", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/domain/crm-mutation-idempotency.ts:11"}, "properties": {"repobilityId": "a39a342844ac4924", "scanner": "scanner-primary", "fingerprint": "6fa957776625a6be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7be7d82284fcd5fb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/sms.ts:1"}, "properties": {"repobilityId": "40fd9338cd70d5c4", "scanner": "scanner-primary", "fingerprint": "7be7d82284fcd5fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70a2879402faed91", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/lib/domain/whatsapp-history-import.ts:4"}, "properties": {"repobilityId": "ca704b7b24ad8820", "scanner": "scanner-primary", "fingerprint": "70a2879402faed91", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a1a287f31f329f0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/notes.ts:1"}, "properties": {"repobilityId": "110e5add83525b1c", "scanner": "scanner-primary", "fingerprint": "6a1a287f31f329f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a911a4f17397bb3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/domain/carrier-events.ts:1"}, "properties": {"repobilityId": "17c709b8b1ebf47e", "scanner": "scanner-primary", "fingerprint": "5a911a4f17397bb3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b21a04257049bab7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/client-activation.ts:1"}, "properties": {"repobilityId": "a7fb990144e605d8", "scanner": "scanner-primary", "fingerprint": "b21a04257049bab7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fac5ae9a31ce52cd", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/conversations.ts:1"}, "properties": {"repobilityId": "b92fcb1c22910961", "scanner": "scanner-primary", "fingerprint": "fac5ae9a31ce52cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62b9802de367bee4", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/domain/integrations.ts:5"}, "properties": {"repobilityId": "5ee2479a1186fa60", "scanner": "scanner-primary", "fingerprint": "62b9802de367bee4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63f304e40203972a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/orders.ts:1"}, "properties": {"repobilityId": "dd68ca9234c371a8", "scanner": "scanner-primary", "fingerprint": "63f304e40203972a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6545fa506a35748a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/custom-fields.ts:1"}, "properties": {"repobilityId": "c35b0ef97c66da3d", "scanner": "scanner-primary", "fingerprint": "6545fa506a35748a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f63deba6e9d54af1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/domain/carrier-configs.ts:1"}, "properties": {"repobilityId": "a86c3126fa782d9b", "scanner": "scanner-primary", "fingerprint": "f63deba6e9d54af1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9f900ebaa13beab", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/contacts.ts:1"}, "properties": {"repobilityId": "bd239a5f826e7c54", "scanner": "scanner-primary", "fingerprint": "c9f900ebaa13beab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bfea3a846424567e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/carrier-coverage.ts:1"}, "properties": {"repobilityId": "b298a5aae3f9daf4", "scanner": "scanner-primary", "fingerprint": "bfea3a846424567e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29aa2e540136a63e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/domain/contact-reviews.ts:1"}, "properties": {"repobilityId": "a5d7cc05c5469034", "scanner": "scanner-primary", "fingerprint": "29aa2e540136a63e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0af966108168d58a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/domain/platform-config.ts:8"}, "properties": {"repobilityId": "154da6a90c4dd8f4", "scanner": "scanner-primary", "fingerprint": "0af966108168d58a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8698b7121596800", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/lib/domain/whatsapp-templates.ts:5"}, "properties": {"repobilityId": "7f9923d6b7cd6f2f", "scanner": "scanner-primary", "fingerprint": "f8698b7121596800", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e705302c7faaac13", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/pipelines.ts:1"}, "properties": {"repobilityId": "e12a3cbcf202f455", "scanner": "scanner-primary", "fingerprint": "e705302c7faaac13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-672b769622190f18", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/__tests__/messages-transcription.test.ts:7"}, "properties": {"repobilityId": "64a20dac186b4668", "scanner": "scanner-primary", "fingerprint": "672b769622190f18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-512a35dc8809c125", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/lib/domain/__tests__/agent-knowledge-base.test.ts:5"}, "properties": {"repobilityId": "977d0c6fa617c80a", "scanner": "scanner-primary", "fingerprint": "512a35dc8809c125", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76e1bda124db16ce", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/domain/__tests__/resolve-or-create-contact.test.ts:5"}, "properties": {"repobilityId": "bf8eb8949ecf94ce", "scanner": "scanner-primary", "fingerprint": "76e1bda124db16ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e79e8bfe79110db", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/domain/__tests__/orders-duplicate-products.test.ts:5"}, "properties": {"repobilityId": "f1aff84225e4ad78", "scanner": "scanner-primary", "fingerprint": "0e79e8bfe79110db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04233790ba10b98d", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/domain/__tests__/agent-templates.test.ts:10"}, "properties": {"repobilityId": "fef80bae19fb536a", "scanner": "scanner-primary", "fingerprint": "04233790ba10b98d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c24bbe31c1ec082", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/lib/domain/__tests__/whatsapp-history-import.test.ts:6"}, "properties": {"repobilityId": "25210bf4a27036c6", "scanner": "scanner-primary", "fingerprint": "5c24bbe31c1ec082", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90f91603c1985f7d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/domain/__tests__/conversations.test.ts:5"}, "properties": {"repobilityId": "a5015304c51ac1a3", "scanner": "scanner-primary", "fingerprint": "90f91603c1985f7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-edb7754f3ad00eb3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/domain/push/register-token.ts:10"}, "properties": {"repobilityId": "4e9aaaf0483e3ae4", "scanner": "scanner-primary", "fingerprint": "edb7754f3ad00eb3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7f392dd0c7422e8", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/domain/push/send-push.ts:14"}, "properties": {"repobilityId": "083d48c8d98e59b7", "scanner": "scanner-primary", "fingerprint": "a7f392dd0c7422e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-849db60721e28f5e", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/domain/conversations/set-bot-mode.ts:4"}, "properties": {"repobilityId": "c1ffa4e542a5d704", "scanner": "scanner-primary", "fingerprint": "849db60721e28f5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25457175b64b56bd", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/domain/varix-clinic/booking.ts:8"}, "properties": {"repobilityId": "9977349427d84b93", "scanner": "scanner-primary", "fingerprint": "25457175b64b56bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-059b76c3e1246bf4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/domain/varix-clinic/constants.ts:10"}, "properties": {"repobilityId": "389c4456aa1dd345", "scanner": "scanner-primary", "fingerprint": "059b76c3e1246bf4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8625a201a42a001", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/domain/varix-clinic/client.ts:25"}, "properties": {"repobilityId": "af055d503abdd6ff", "scanner": "scanner-primary", "fingerprint": "e8625a201a42a001", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01cc8bdf74c8fcd6", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/domain/varix-clinic/availability.ts:4"}, "properties": {"repobilityId": "b0062341b3337e57", "scanner": "scanner-primary", "fingerprint": "01cc8bdf74c8fcd6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4cde60d3b2345968", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/lib/domain/varix-clinic/__tests__/booking.test.ts:5"}, "properties": {"repobilityId": "da290b601d1d651c", "scanner": "scanner-primary", "fingerprint": "4cde60d3b2345968", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d86630e183f8da89", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/domain/varix-clinic/__tests__/availability.test.ts:5"}, "properties": {"repobilityId": "9d1199f528564fa4", "scanner": "scanner-primary", "fingerprint": "d86630e183f8da89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6201caf28df23ef0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/hooks/use-conversations.ts:13"}, "properties": {"repobilityId": "a47c2a65e59cf63b", "scanner": "scanner-primary", "fingerprint": "6201caf28df23ef0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b6724f63188686c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/use-conversations.ts:22"}, "properties": {"repobilityId": "69143d7137c51d5e", "scanner": "scanner-primary", "fingerprint": "6b6724f63188686c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-558b62d36cbfed80", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/hooks/use-messages.ts:3"}, "properties": {"repobilityId": "4a1e388c94b61c43", "scanner": "scanner-primary", "fingerprint": "558b62d36cbfed80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-617026b79e3c5ba1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/use-messages.ts:63"}, "properties": {"repobilityId": "c2b25758c0077cdf", "scanner": "scanner-primary", "fingerprint": "617026b79e3c5ba1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-484d32fb074df13b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/hooks/use-robot-job-progress.ts:11"}, "properties": {"repobilityId": "5322638c7cdb49ac", "scanner": "scanner-primary", "fingerprint": "484d32fb074df13b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d889078775a3ec1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/inngest/functions/v2-lock-cleanup-cron.ts:1"}, "properties": {"repobilityId": "a8af8a418d6f431b", "scanner": "scanner-primary", "fingerprint": "6d889078775a3ec1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b77b8d966d26a21d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/inngest/functions/mobile-push-on-new-message.ts:5"}, "properties": {"repobilityId": "4b86108e698744e7", "scanner": "scanner-primary", "fingerprint": "b77b8d966d26a21d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ce4caaef5011f97", "level": "note", "message": {"text": "Legacy-named symbol `fallback_legacy` in src/inngest/functions/routing-audit-cleanup.ts:6"}, "properties": {"repobilityId": "25765aafbeacf15f", "scanner": "scanner-primary", "fingerprint": "4ce4caaef5011f97", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1f7e90f19e7875aa", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/inngest/functions/knowledge-sync-v4.ts:79"}, "properties": {"repobilityId": "f85cd5a1b8636b94", "scanner": "scanner-primary", "fingerprint": "1f7e90f19e7875aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4311a3404e0f876f", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/inngest/functions/observability-purge.ts:1"}, "properties": {"repobilityId": "51a11cf260c8324d", "scanner": "scanner-primary", "fingerprint": "4311a3404e0f876f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b77246995cbfd6b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/inngest/functions/agent-timers-v3.ts:321"}, "properties": {"repobilityId": "14b8b8dfcb21aa65", "scanner": "scanner-primary", "fingerprint": "b77246995cbfd6b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b642f3c0d7d287a1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/inngest/functions/pw-confirmation-preload-and-invoke.ts:268"}, "properties": {"repobilityId": "62e52be653f73193", "scanner": "scanner-primary", "fingerprint": "b642f3c0d7d287a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71dcf739e5159c0a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/inngest/functions/agent-timers-v4.ts:422"}, "properties": {"repobilityId": "35a5042f8df96c48", "scanner": "scanner-primary", "fingerprint": "71dcf739e5159c0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30e8873757b052c4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/inngest/functions/agent-production.ts:25"}, "properties": {"repobilityId": "b5b55a77d8ff9928", "scanner": "scanner-primary", "fingerprint": "30e8873757b052c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56a7957e4c593d31", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/inngest/functions/recompra-preload-context.ts:29"}, "properties": {"repobilityId": "d4be1ef14e79a7c6", "scanner": "scanner-primary", "fingerprint": "56a7957e4c593d31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7f7362d3a9afe62", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/inngest/functions/crm-bot-expire-proposals.ts:1"}, "properties": {"repobilityId": "717e13c518a6cbf9", "scanner": "scanner-primary", "fingerprint": "d7f7362d3a9afe62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9a6702fd4f23acf", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/inngest/functions/close-stale-sessions.ts:1"}, "properties": {"repobilityId": "3bd697b1309fb192", "scanner": "scanner-primary", "fingerprint": "c9a6702fd4f23acf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-934b2c86732b1942", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/inngest/functions/robot-orchestrator.ts:6"}, "properties": {"repobilityId": "655eaaddc0d4ac9c", "scanner": "scanner-primary", "fingerprint": "934b2c86732b1942", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48f358970762b7e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/inngest/functions/automation-runner.ts:6"}, "properties": {"repobilityId": "10965726928c3de4", "scanner": "scanner-primary", "fingerprint": "48f358970762b7e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3078eb54c13ce726", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/inngest/functions/__tests__/v2-lock-cleanup-cron.test.ts:21"}, "properties": {"repobilityId": "38702b49efd88be6", "scanner": "scanner-primary", "fingerprint": "3078eb54c13ce726", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75623ef3131ec894", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/inngest/functions/__tests__/automation-runner-cascade-capped.test.ts:5"}, "properties": {"repobilityId": "3b4f91347b6e38c7", "scanner": "scanner-primary", "fingerprint": "75623ef3131ec894", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c2338d71c556fc3e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/inngest/functions/__tests__/agent-production-lock-event.test.ts:334"}, "properties": {"repobilityId": "6117a6fcebc5922d", "scanner": "scanner-primary", "fingerprint": "c2338d71c556fc3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-364d48e64086ef52", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/inngest/functions/__tests__/automation-runner-killswitch.test.ts:5"}, "properties": {"repobilityId": "4d32e5f3d52b640b", "scanner": "scanner-primary", "fingerprint": "364d48e64086ef52", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-570aac874e441535", "level": "none", "message": {"text": "Commented-code block (6 lines) in e2e/auth.spec.ts:37"}, "properties": {"repobilityId": "2817d483de535127", "scanner": "scanner-primary", "fingerprint": "570aac874e441535", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d92186ffbe2a613", "level": "note", "message": {"text": "Legacy-named symbol `ui_inbox_v2` in e2e/fixtures/editorial-v3.ts:14"}, "properties": {"repobilityId": "0c9de0adc7afac32", "scanner": "scanner-primary", "fingerprint": "2d92186ffbe2a613", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-49936ef6f227ee79", "level": "none", "message": {"text": "Commented-code block (15 lines) in e2e/fixtures/editorial-v3.ts:7"}, "properties": {"repobilityId": "0c93a1e1fcc1414f", "scanner": "scanner-primary", "fingerprint": "49936ef6f227ee79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e026dfcacf927c43", "level": "none", "message": {"text": "Commented-code block (6 lines) in e2e/visual/editorial-fidelity.spec.ts:4"}, "properties": {"repobilityId": "cb9eb52b82ddaf96", "scanner": "scanner-primary", "fingerprint": "e026dfcacf927c43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98fc9de6a4fc2b2f", "level": "note", "message": {"text": "Legacy-named symbol `ui_inbox_v2` in e2e/visual/regla6-regression.spec.ts:6"}, "properties": {"repobilityId": "a943f19b134c5804", "scanner": "scanner-primary", "fingerprint": "98fc9de6a4fc2b2f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-90f0dda09a6d7f0b", "level": "none", "message": {"text": "Commented-code block (7 lines) in e2e/visual/regla6-regression.spec.ts:8"}, "properties": {"repobilityId": "a30cab6c3d39c5ea", "scanner": "scanner-primary", "fingerprint": "90f0dda09a6d7f0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-379a33678ae64747", "level": "note", "message": {"text": "77 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "fea0d246d8ef11b9", "scanner": "scanner-primary", "fingerprint": "379a33678ae64747", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-a0d3864ea79c5e5f", "level": "error", "message": {"text": "Dangling fetch: POST /api/config-builder/templates/upload (src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/chat-pane.tsx:172)"}, "properties": {"repobilityId": "9317d886914f73df", "scanner": "scanner-primary", "fingerprint": "a0d3864ea79c5e5f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-10424c627555c086", "level": "error", "message": {"text": "Dangling fetch: POST /api/config-builder/templates/upload (src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/image-uploader.tsx:65)"}, "properties": {"repobilityId": "0e09d101c5a9c007", "scanner": "scanner-primary", "fingerprint": "10424c627555c086", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-edf267e0affd58d3", "level": "error", "message": {"text": "Dangling fetch: GET /api/builder/sessions (src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/template-builder-layout.tsx:239)"}, "properties": {"repobilityId": "ce4cfc6c867644d0", "scanner": "scanner-primary", "fingerprint": "edf267e0affd58d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5bd1e2591a547d38", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/builder/sessions?sessionId=${sessionId} (src/app/(dashboard)/configuracion/whatsapp/templates/builder/components/template-builder-layout.tsx:261)"}, "properties": {"repobilityId": "0728163deb3ef332", "scanner": "scanner-primary", "fingerprint": "5bd1e2591a547d38", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-df40663028410344", "level": "error", "message": {"text": "Dangling fetch: POST /api/config-builder/templates/upload (src/app/(dashboard)/agentes/content-editor/_components/ContentImageUploader.tsx:58)"}, "properties": {"repobilityId": "b78d1bd407810bab", "scanner": "scanner-primary", "fingerprint": "df40663028410344", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-711ff48d893fc725", "level": "error", "message": {"text": "Dangling fetch: GET /api/sandbox/crm-agents (src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:102)"}, "properties": {"repobilityId": "86af3a5d5a16e8a3", "scanner": "scanner-primary", "fingerprint": "711ff48d893fc725", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7942085e50bfd770", "level": "error", "message": {"text": "Dangling fetch: POST /api/sandbox/process (src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:217)"}, "properties": {"repobilityId": "c52497d260ae2cbb", "scanner": "scanner-primary", "fingerprint": "7942085e50bfd770", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aebb22c4a9895aaa", "level": "error", "message": {"text": "Dangling fetch: POST /api/sandbox/process (src/app/(dashboard)/sandbox/components/sandbox-layout.tsx:382)"}, "properties": {"repobilityId": "417ed00b311ae646", "scanner": "scanner-primary", "fingerprint": "aebb22c4a9895aaa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f3bc1a99992c707e", "level": "error", "message": {"text": "Dangling fetch: GET /api/builder/sessions (src/app/(dashboard)/automatizaciones/builder/components/session-history.tsx:77)"}, "properties": {"repobilityId": "46e7930f325374fd", "scanner": "scanner-primary", "fingerprint": "f3bc1a99992c707e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dbc0dd4b073a4da8", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/builder/sessions?sessionId=${sessionId} (src/app/(dashboard)/automatizaciones/builder/components/session-history.tsx:99)"}, "properties": {"repobilityId": "78a668d77f688d80", "scanner": "scanner-primary", "fingerprint": "dbc0dd4b073a4da8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dd74c78288fe0075", "level": "error", "message": {"text": "Dangling fetch: POST /api/contact-review/${token} (src/app/contact-review/[token]/page.tsx:27)"}, "properties": {"repobilityId": "346e2c12fd54c90c", "scanner": "scanner-primary", "fingerprint": "dd74c78288fe0075", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1a3174fe3e028643", "level": "error", "message": {"text": "Dangling fetch: POST /api/sandbox/save-session (src/lib/sandbox/sandbox-session.ts:57)"}, "properties": {"repobilityId": "ba3ad4e2f5244ea5", "scanner": "scanner-primary", "fingerprint": "1a3174fe3e028643", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b67310a39827395f", "level": "error", "message": {"text": "Dangling fetch: POST /api/sandbox/delete-session (src/lib/sandbox/sandbox-session.ts:82)"}, "properties": {"repobilityId": "31a30476dda02628", "scanner": "scanner-primary", "fingerprint": "b67310a39827395f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ea648fdd3648f5f3", "level": "error", "message": {"text": "Dangling fetch: POST https://${opts.shop}/admin/api/${SHOPIFY_API_VERSION}/webhooks.json (src/lib/shopify/oauth.ts:401)"}, "properties": {"repobilityId": "eb36388fefef130e", "scanner": "scanner-primary", "fingerprint": "ea648fdd3648f5f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4756b4c4da7d2088", "level": "note", "message": {"text": "Unused endpoint: GET /api/health"}, "properties": {"repobilityId": "47b5c30c69a85e3f", "scanner": "scanner-primary", "fingerprint": "4756b4c4da7d2088", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0fba7deffcb6c9c7", "level": "note", "message": {"text": "Unused endpoint: POST /api/create-link"}, "properties": {"repobilityId": "457b0489d7618eb9", "scanner": "scanner-primary", "fingerprint": "0fba7deffcb6c9c7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1348eb18bbbeb69a", "level": "note", "message": {"text": "Unused endpoint: POST /api/submit-code"}, "properties": {"repobilityId": "d227a53100140b53", "scanner": "scanner-primary", "fingerprint": "1348eb18bbbeb69a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-57aa6bcc8a1d52a1", "level": "note", "message": {"text": "Unused endpoint: GET /api/login-status"}, "properties": {"repobilityId": "aceb36ecd1ea7bcb", "scanner": "scanner-primary", "fingerprint": "57aa6bcc8a1d52a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f236445ab4f4711b", "level": "note", "message": {"text": "Unused endpoint: POST /api/clear-session"}, "properties": {"repobilityId": "e7f05f3c85fd1013", "scanner": "scanner-primary", "fingerprint": "f236445ab4f4711b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9f8d493d7bb86156", "level": "note", "message": {"text": "Unused endpoint: GET /api/screenshots"}, "properties": {"repobilityId": "95d2c764220ea26d", "scanner": "scanner-primary", "fingerprint": "9f8d493d7bb86156", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-75fb5368f9abdbdc", "level": "note", "message": {"text": "Unused endpoint: GET /api/screenshots/:name"}, "properties": {"repobilityId": "7f2ef75cb5489b4e", "scanner": "scanner-primary", "fingerprint": "75fb5368f9abdbdc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f8d87b26202e28b6", "level": "note", "message": {"text": "Unused endpoint: POST /api/mobile/orders"}, "properties": {"repobilityId": "903c9c715fe7d66d", "scanner": "scanner-primary", "fingerprint": "f8d87b26202e28b6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e8c9e0262fa5f948", "level": "note", "message": {"text": "Unused endpoint: POST /api/mobile/push/register"}, "properties": {"repobilityId": "02eb0e9105bd4793", "scanner": "scanner-primary", "fingerprint": "e8c9e0262fa5f948", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-876479b97a62a756", "level": "note", "message": {"text": "Unused endpoint: POST /api/scrape-appointments"}, "properties": {"repobilityId": "8fe91ce289d65bd5", "scanner": "scanner-primary", "fingerprint": "876479b97a62a756", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dbe57d86d77cf95e", "level": "note", "message": {"text": "Unused endpoint: POST /api/confirm-appointment"}, "properties": {"repobilityId": "51d9f27abc619444", "scanner": "scanner-primary", "fingerprint": "dbe57d86d77cf95e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-408ab389eabb6a1c", "level": "note", "message": {"text": "Unused endpoint: POST /api/check-availability"}, "properties": {"repobilityId": "38a8ac39d8cd0b45", "scanner": "scanner-primary", "fingerprint": "408ab389eabb6a1c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-35397b007b8d0eb7", "level": "note", "message": {"text": "Unused endpoint: POST /api/crear-pedidos-batch"}, "properties": {"repobilityId": "3b19b0f4ef969b9b", "scanner": "scanner-primary", "fingerprint": "35397b007b8d0eb7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c4961dea563fcc62", "level": "note", "message": {"text": "Unused endpoint: POST /api/buscar-guias"}, "properties": {"repobilityId": "dd6016615caa5e57", "scanner": "scanner-primary", "fingerprint": "c4961dea563fcc62", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}