{"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-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-069d34dcd3c0554f", "name": "Stray `console.log` in TS/JS \u2014 scripts/update-all-ceps.ts:76", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-all-ceps.ts:76"}, "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-81de4a9106148bed", "name": "Stray `console.log` in TS/JS \u2014 scripts/import-csv.ts:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/import-csv.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-96cd0022c992e729", "name": "Stray `console.log` in TS/JS \u2014 scripts/import-fev-2026.ts:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/import-fev-2026.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-e9f01e275a1f3210", "name": "Stray `console.log` in TS/JS \u2014 scripts/update-march-cep.ts:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-march-cep.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-8f0b4382b8805f43", "name": "Stray `console.log` in TS/JS \u2014 scripts/populate-mostruario.ts:492", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/populate-mostruario.ts:492"}, "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-873e1093afbbbb56", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/StepUsedDeviceMulti.tsx:1393", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/StepUsedDeviceMulti.tsx:1393"}, "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-e7b4c1a1819a6ecd", "name": "`truncate` class without `title=` for hover reveal \u2014 components/StepQuote.tsx:830", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/StepQuote.tsx:830"}, "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-4bf856d112918cad", "name": "Stray `console.log` in TS/JS \u2014 components/StepQuote.tsx:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 components/StepQuote.tsx:84"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f7c2a10c4dcf2358", "name": "`truncate` class without `title=` for hover reveal \u2014 components/StepManualHandoff.tsx:556", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/StepManualHandoff.tsx:556"}, "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-a8e85678c762ee0d", "name": "Icon-only button without accessible name \u2014 components/admin/PrecoManualModal.tsx:128", "shortDescription": {"text": "Icon-only button without accessible name \u2014 components/admin/PrecoManualModal.tsx:128"}, "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-cd5cbd36907987be", "name": "Icon-only button without accessible name \u2014 components/admin/BalancoSeminovosSection.tsx:341", "shortDescription": {"text": "Icon-only button without accessible name \u2014 components/admin/BalancoSeminovosSection.tsx:341"}, "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-4f714c9a27040223", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/TopSkusSection.tsx:156", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/TopSkusSection.tsx:156"}, "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-c8ebacc5a0da0064", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/RotaOtimizadaModal.tsx:277", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/RotaOtimizadaModal.tsx:277"}, "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-b2c08aa8a2f62540", "name": "Icon-only button without accessible name \u2014 components/admin/SuperSearch.tsx:289", "shortDescription": {"text": "Icon-only button without accessible name \u2014 components/admin/SuperSearch.tsx:289"}, "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-5c055a1b7cae6a4b", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/ChecklistColetaModal.tsx:118", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/ChecklistColetaModal.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-054d7142d220bdce", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/AdminNav.tsx:68", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/AdminNav.tsx:68"}, "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-74b27093375ae192", "name": "Icon-only button without accessible name \u2014 components/admin/SkuInfoModal.tsx:209", "shortDescription": {"text": "Icon-only button without accessible name \u2014 components/admin/SkuInfoModal.tsx:209"}, "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-41fbf5c5a4e392e3", "name": "Icon-only button without accessible name \u2014 components/admin/BalancoPorCorModal.tsx:190", "shortDescription": {"text": "Icon-only button without accessible name \u2014 components/admin/BalancoPorCorModal.tsx:190"}, "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-12665a9c81c26c82", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/admin/AdminShell.tsx:454", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/admin/AdminShell.tsx:454"}, "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-d2ecbe671f07b6e0", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/RotaDoDiaModal.tsx:104", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/RotaDoDiaModal.tsx:104"}, "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-6fa8505986c90417", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/EncomendasMensaisSection.tsx:196", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/EncomendasMensaisSection.tsx:196"}, "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-c8c751f55a5744d9", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/EntregadorView.tsx:418", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/EntregadorView.tsx:418"}, "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-27ece00a264af3da", "name": "Icon-only button without accessible name \u2014 components/admin/ProdutoSpecFields.tsx:529", "shortDescription": {"text": "Icon-only button without accessible name \u2014 components/admin/ProdutoSpecFields.tsx:529"}, "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-6e3174a2148cf7f6", "name": "Icon-only button without accessible name \u2014 components/loja/TradeInWidget.tsx:205", "shortDescription": {"text": "Icon-only button without accessible name \u2014 components/loja/TradeInWidget.tsx:205"}, "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-49c9d8c88ba550a1", "name": "`truncate` class without `title=` for hover reveal \u2014 components/loja/HeaderLoja.tsx:104", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/loja/HeaderLoja.tsx:104"}, "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-2aa2c5a41bccb93e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:58", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:58"}, "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-1475de865c7dc679", "name": "Stray `console.log` in TS/JS \u2014 app/api/leads/route.ts:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/leads/route.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-e327bc8603feb6dc", "name": "Stray `console.log` in TS/JS \u2014 app/api/leads/exit-intent/route.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/leads/exit-intent/route.ts:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d3e1791b83436644", "name": "Stray `console.log` in TS/JS \u2014 app/api/webhook/zapi-followup/route.ts:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhook/zapi-followup/route.ts:66"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b9c55c3af3f389e3", "name": "Stray `console.log` in TS/JS \u2014 app/api/ia/route.ts:362", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/ia/route.ts:362"}, "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-665f3d6235dd50e5", "name": "Stray `console.log` in TS/JS \u2014 app/api/vendas/route.ts:1117", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/vendas/route.ts:1117"}, "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-43a3d31a80c36871", "name": "Stray `console.log` in TS/JS \u2014 app/api/vendas/from-formulario/route.ts:620", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/vendas/from-formulario/route.ts:620"}, "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-a5ccb9b93ff02571", "name": "Stray `console.log` in TS/JS \u2014 app/api/mp-webhook/route.ts:91", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/mp-webhook/route.ts:91"}, "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-997fa4e4061d89e8", "name": "Stray `console.log` in TS/JS \u2014 app/api/admin/backup-mensal/route.ts:179", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/backup-mensal/route.ts:179"}, "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-873308d3ceae897c", "name": "Stray `console.log` in TS/JS \u2014 app/api/admin/followup/route.ts:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/followup/route.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-c59011c6090c6c32", "name": "Stray `console.log` in TS/JS \u2014 app/api/admin/mostruario/route.ts:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/mostruario/route.ts:97"}, "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-ca1a4f6a72cae529", "name": "Stray `console.log` in TS/JS \u2014 app/api/admin/cashback/processar-expiracoes/route.ts:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/cashback/processar-expiracoes/route.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-ed1cd034bde79fa1", "name": "Stray `console.log` in TS/JS \u2014 app/api/admin/cashback/processar-liberacoes/route.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/cashback/processar-liberacoes/route.ts:33"}, "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-7701609456d5b7cd", "name": "Stray `console.log` in TS/JS \u2014 app/api/admin/precos/route.ts:193", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/precos/route.ts:193"}, "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-c92386c13fe14a2b", "name": "Stray `console.log` in TS/JS \u2014 app/api/admin/analytics-vendas/route.ts:202", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/analytics-vendas/route.ts:202"}, "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-cd9842c8cb450ecb", "name": "TODO/FIXME marker in shipping code \u2014 app/api/admin/comissoes/route.ts:680", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/admin/comissoes/route.ts:680"}, "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-7c8ce919cb5ef81e", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/disparar-termos-pendentes/route.ts:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/disparar-termos-pendentes/route.ts:82"}, "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-ec22c0b045129a33", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/followup-simulacoes/route.ts:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/followup-simulacoes/route.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-22fc2fede4746434", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/alerta-preco/route.ts:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/alerta-preco/route.ts:57"}, "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-c44eb812cee3a0b8", "name": "Stray `console.log` in TS/JS \u2014 app/api/estoque/route.ts:838", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/estoque/route.ts:838"}, "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-40b5bdc09ccc200a", "name": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/zapsign/route.ts:168", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/zapsign/route.ts:168"}, "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-82d2985986f0563c", "name": "Stray `console.log` in TS/JS \u2014 app/api/link-compras/upload-print/route.ts:156", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/link-compras/upload-print/route.ts:156"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-58bcf17fc84dcd25", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/c/[d]/page.tsx:201", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/c/[d]/page.tsx:201"}, "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-031194c6f2836f0b", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/minhas-comissoes/page.tsx:537", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/minhas-comissoes/page.tsx:537"}, "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-2ba192aa8d149bb0", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/catalogo/page.tsx:849", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/catalogo/page.tsx:849"}, "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-6ef55a1208365c8b", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/gastos/page.tsx:1658", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/gastos/page.tsx:1658"}, "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-dac5484fe5da1ea6", "name": "Stray `console.log` in TS/JS \u2014 app/admin/clientes/page.tsx:1291", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/admin/clientes/page.tsx:1291"}, "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-0868b8ae8a67cf1f", "name": "Icon-only button without accessible name \u2014 app/admin/mostruario/page.tsx:418", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/admin/mostruario/page.tsx:418"}, "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-834653e79f1d8e97", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/mostruario/page.tsx:325", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/mostruario/page.tsx:325"}, "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-4ac1bc8be2beabfa", "name": "Stray `console.log` in TS/JS \u2014 app/admin/mostruario/page.tsx:300", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/admin/mostruario/page.tsx:300"}, "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-99a3933d47735f8c", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/analytics/page.tsx:418", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/analytics/page.tsx:418"}, "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-65ab38c1528fd514", "name": "Icon-only button without accessible name \u2014 app/admin/avaliacoes/page.tsx:296", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/admin/avaliacoes/page.tsx:296"}, "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-86a47099d0e6edbe", "name": "Icon-only button without accessible name \u2014 app/admin/simulacoes/page.tsx:5871", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/admin/simulacoes/page.tsx:5871"}, "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-15632cbedc03b991", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/simulacoes/page.tsx:501", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/simulacoes/page.tsx:501"}, "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-525813c65bdf0d15", "name": "Icon-only button without accessible name \u2014 app/admin/vendas/page.tsx:4304", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/admin/vendas/page.tsx:4304"}, "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-6a10289013949869", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/vendas/page.tsx:5155", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/vendas/page.tsx:5155"}, "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-8314975bc31e3bfb", "name": "TODO/FIXME marker in shipping code \u2014 app/admin/vendas/page.tsx:147", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 app/admin/vendas/page.tsx:147"}, "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-7b82a4e06c0c881b", "name": "Stray `console.log` in TS/JS \u2014 app/admin/vendas/page.tsx:8294", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/admin/vendas/page.tsx:8294"}, "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-3f62c09b6ff34818", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/dashboard/page.tsx:1051", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/dashboard/page.tsx:1051"}, "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-dc63ca89178f34bd", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/produtos-funcionarios/page.tsx:329", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/produtos-funcionarios/page.tsx:329"}, "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-35b17175a3430e81", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/conversas/page.tsx:540", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/conversas/page.tsx:540"}, "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-9b97a314181829ce", "name": "Icon-only button without accessible name \u2014 app/admin/encomendas/page.tsx:3243", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/admin/encomendas/page.tsx:3243"}, "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-a88a3a6694ed3844", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/gerar-link/page.tsx:5901", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/gerar-link/page.tsx:5901"}, "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-40eccc78eadbb912", "name": "Icon-only button without accessible name \u2014 app/admin/financeiro/dividas/page.tsx:427", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/admin/financeiro/dividas/page.tsx:427"}, "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-2f291f88016f0bc2", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/financeiro/dividas/[id]/page.tsx:889", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/financeiro/dividas/[id]/page.tsx:889"}, "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-87e03a801953b1c1", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/log/page.tsx:348", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/log/page.tsx:348"}, "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-b6cc276e485f7655", "name": "Icon-only button without accessible name \u2014 app/admin/auditoria/page.tsx:2186", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/admin/auditoria/page.tsx:2186"}, "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-cec202b25f7293d1", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/auditoria/page.tsx:1092", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/auditoria/page.tsx:1092"}, "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-24dbe12f6d3d0afe", "name": "Stray `console.log` in TS/JS \u2014 app/admin/orcamento/page.tsx:696", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/admin/orcamento/page.tsx:696"}, "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-8a32dba15d907c50", "name": "Icon-only button without accessible name \u2014 app/admin/estoque/page.tsx:5053", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/admin/estoque/page.tsx:5053"}, "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-b71a57a911a20c91", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/estoque/page.tsx:3631", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/estoque/page.tsx:3631"}, "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-df031f6986ece916", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/importar/page.tsx:489", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/importar/page.tsx:489"}, "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-a6b5aeeb639927fa", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/analytics-vendas/page.tsx:862", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/analytics-vendas/page.tsx:862"}, "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-c18f0734263254e9", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/mapa-vendas/page.tsx:266", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/mapa-vendas/page.tsx:266"}, "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-223e7a76f06e14d4", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/migrations/page.tsx:176", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/migrations/page.tsx:176"}, "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-0735cd0df3ae4be6", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/comissoes/page.tsx:865", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/comissoes/page.tsx:865"}, "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-dae308d1b6fb1443", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/calculadora-taxas/page.tsx:648", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/calculadora-taxas/page.tsx:648"}, "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-237bd4ca4566a401", "name": "`truncate` class without `title=` for hover reveal \u2014 app/produto/[slug]/page.tsx:392", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/produto/[slug]/page.tsx:392"}, "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-926b370e957bcb65", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/pagamento-confirmado/page.tsx:102", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/pagamento-confirmado/page.tsx:102"}, "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-b5855f591e6c586b", "name": "Stray `console.log` in TS/JS \u2014 lib/sms.ts:122", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/sms.ts:122"}, "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-8dbe01ccd7c690e5", "name": "Stray `console.log` in TS/JS \u2014 lib/infosimples.ts:81", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/infosimples.ts:81"}, "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-1935309c477eeb66", "name": "Stray `console.log` in TS/JS \u2014 lib/zapi.ts:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/zapi.ts:67"}, "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-3c2e3a46a4af6da3", "name": "Stray `console.log` in TS/JS \u2014 lib/contrato-auto.ts:204", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/contrato-auto.ts:204"}, "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-5767d80958aa40f1", "name": "Insecure pattern 'direct_innerhtml_assignment' in components/TradeInCalculatorMulti.tsx:784", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in components/TradeInCalculatorMulti.tsx:784"}, "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-e2db1c5d6f944c44", "name": "Insecure pattern 'dangerous_innerhtml' in components/StepUsedDeviceMulti.tsx:1393", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/StepUsedDeviceMulti.tsx:1393"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0cc5b3af38327a73", "name": "Insecure pattern 'document_write' in components/admin/SuperSearch.tsx:52", "shortDescription": {"text": "Insecure pattern 'document_write' in components/admin/SuperSearch.tsx:52"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-52103ed86068e99b", "name": "Insecure pattern 'dangerous_innerhtml' in components/admin/AdminShell.tsx:454", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/admin/AdminShell.tsx:454"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-adf10c3979107026", "name": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:58", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:58"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d2984372531d0253", "name": "Insecure pattern 'dangerous_innerhtml' in app/c/[d]/page.tsx:201", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/c/[d]/page.tsx:201"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b536c35b0c23b4f8", "name": "Insecure pattern 'document_write' in app/admin/impressao-produtos/page.tsx:282", "shortDescription": {"text": "Insecure pattern 'document_write' in app/admin/impressao-produtos/page.tsx:282"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d3f5b9f603eef86c", "name": "Insecure pattern 'document_write' in app/admin/operacoes/page.tsx:262", "shortDescription": {"text": "Insecure pattern 'document_write' in app/admin/operacoes/page.tsx:262"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d77eb70298fe099f", "name": "Insecure pattern 'direct_innerhtml_assignment' in app/admin/simulacoes/page.tsx:4581", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/admin/simulacoes/page.tsx:4581"}, "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-f4abce8b134f3363", "name": "Possible secret in app/admin/vendas/page.tsx", "shortDescription": {"text": "Possible secret in app/admin/vendas/page.tsx"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-4041430c6b63aa74", "name": "Insecure pattern 'document_write' in app/admin/etiquetas/page.tsx:270", "shortDescription": {"text": "Insecure pattern 'document_write' in app/admin/etiquetas/page.tsx:270"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-96c283acc1640508", "name": "Insecure pattern 'direct_innerhtml_assignment' in app/admin/etiquetas/page.tsx:206", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/admin/etiquetas/page.tsx:206"}, "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-4553c707c8414f1c", "name": "Insecure pattern 'document_write' in app/admin/etiquetas-preco/page.tsx:294", "shortDescription": {"text": "Insecure pattern 'document_write' in app/admin/etiquetas-preco/page.tsx:294"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3dd62a60fdeadead", "name": "Insecure pattern 'domparser_html_parse' in app/admin/etiquetas-preco/page.tsx:290", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in app/admin/etiquetas-preco/page.tsx:290"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9484181296575783", "name": "Insecure pattern 'document_write' in app/admin/estoque/page.tsx:2782", "shortDescription": {"text": "Insecure pattern 'document_write' in app/admin/estoque/page.tsx:2782"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ad1a0e949081a1cf", "name": "Insecure pattern 'dangerous_innerhtml' in app/pagamento-confirmado/page.tsx:102", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/pagamento-confirmado/page.tsx:102"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fd742979504b4008", "name": "Insecure pattern 'local_storage_auth_token' in lib/useTradeInAnalytics.ts:11", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in lib/useTradeInAnalytics.ts:11"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e7acc1204e117c56", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1a53932526bb9bc4", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a16c0836b547f24e", "name": "Very large file: create_docs.py (1836 lines)", "shortDescription": {"text": "Very large file: create_docs.py (1836 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-f9932b3ef20ed043", "name": "Very large file: components/TradeInCalculatorMulti.tsx (1352 lines)", "shortDescription": {"text": "Very large file: components/TradeInCalculatorMulti.tsx (1352 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-76e293773ab18a93", "name": "Very large file: components/StepUsedDeviceMulti.tsx (1860 lines)", "shortDescription": {"text": "Very large file: components/StepUsedDeviceMulti.tsx (1860 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-9d0572098a15e026", "name": "Very large file: components/StepQuote.tsx (1492 lines)", "shortDescription": {"text": "Very large file: components/StepQuote.tsx (1492 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-2f8ab5cdf02efdcc", "name": "Very large file: components/admin/TradeInQuestionsAdmin.tsx (1253 lines)", "shortDescription": {"text": "Very large file: components/admin/TradeInQuestionsAdmin.tsx (1253 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-c6c1b11a5f1116e5", "name": "Very large file: components/admin/SuperSearch.tsx (1836 lines)", "shortDescription": {"text": "Very large file: components/admin/SuperSearch.tsx (1836 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-80cf912d03dedd7a", "name": "Very large file: components/admin/ProdutoSpecFields.tsx (1281 lines)", "shortDescription": {"text": "Very large file: components/admin/ProdutoSpecFields.tsx (1281 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-53a96496a786273a", "name": "Very large file: app/api/vendas/route.ts (2631 lines)", "shortDescription": {"text": "Very large file: app/api/vendas/route.ts (2631 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-6af640c713598cad", "name": "Very large file: app/api/telegram/webhook/route.ts (1576 lines)", "shortDescription": {"text": "Very large file: app/api/telegram/webhook/route.ts (1576 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-1352720abda60e28", "name": "Very large file: app/api/admin/comissoes/route.ts (1346 lines)", "shortDescription": {"text": "Very large file: app/api/admin/comissoes/route.ts (1346 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-99750ab06d5ee546", "name": "Very large file: app/compra/page.tsx (3454 lines)", "shortDescription": {"text": "Very large file: app/compra/page.tsx (3454 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-fa551595e2278e7e", "name": "Very large file: app/admin/catalogo/page.tsx (1643 lines)", "shortDescription": {"text": "Very large file: app/admin/catalogo/page.tsx (1643 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-d50427a87ba0c2af", "name": "Very large file: app/admin/gastos/page.tsx (1857 lines)", "shortDescription": {"text": "Very large file: app/admin/gastos/page.tsx (1857 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-ea6f84e39dbf8892", "name": "Very large file: app/admin/clientes/page.tsx (2154 lines)", "shortDescription": {"text": "Very large file: app/admin/clientes/page.tsx (2154 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-d3818370d08f5419", "name": "Very large file: app/admin/mostruario/page.tsx (1390 lines)", "shortDescription": {"text": "Very large file: app/admin/mostruario/page.tsx (1390 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-4e21ee88af866a3d", "name": "Very large file: app/admin/simulacoes/page.tsx (6144 lines)", "shortDescription": {"text": "Very large file: app/admin/simulacoes/page.tsx (6144 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-e011a24693f20e1d", "name": "Very large file: app/admin/vendas/page.tsx (11984 lines)", "shortDescription": {"text": "Very large file: app/admin/vendas/page.tsx (11984 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-d4b7ac90eccadbb5", "name": "Very large file: app/admin/dashboard/page.tsx (1409 lines)", "shortDescription": {"text": "Very large file: app/admin/dashboard/page.tsx (1409 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-a10d6e873b0d7c17", "name": "Very large file: app/admin/produtos-funcionarios/page.tsx (1294 lines)", "shortDescription": {"text": "Very large file: app/admin/produtos-funcionarios/page.tsx (1294 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-372c5996ea647ace", "name": "Very large file: app/admin/cashback/page.tsx (1289 lines)", "shortDescription": {"text": "Very large file: app/admin/cashback/page.tsx (1289 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-88c3492330e3cf59", "name": "Very large file: app/admin/encomendas/page.tsx (3480 lines)", "shortDescription": {"text": "Very large file: app/admin/encomendas/page.tsx (3480 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-7e8fb2a9dc55f5e7", "name": "Very large file: app/admin/gerar-link/page.tsx (6002 lines)", "shortDescription": {"text": "Very large file: app/admin/gerar-link/page.tsx (6002 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-46ade9966ef82508", "name": "Very large file: app/admin/etiquetas/page.tsx (1251 lines)", "shortDescription": {"text": "Very large file: app/admin/etiquetas/page.tsx (1251 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-b3a0dc22faf738aa", "name": "Very large file: app/admin/precos/page.tsx (2077 lines)", "shortDescription": {"text": "Very large file: app/admin/precos/page.tsx (2077 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-d5ee6e1944607320", "name": "Very large file: app/admin/financeiro/dividas/[id]/page.tsx (2569 lines)", "shortDescription": {"text": "Very large file: app/admin/financeiro/dividas/[id]/page.tsx (2569 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-83397f59346d22e5", "name": "Very large file: app/admin/auditoria/page.tsx (2443 lines)", "shortDescription": {"text": "Very large file: app/admin/auditoria/page.tsx (2443 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-badc89cf64285403", "name": "Very large file: app/admin/orcamento/page.tsx (1694 lines)", "shortDescription": {"text": "Very large file: app/admin/orcamento/page.tsx (1694 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-efab6d6e0441f51d", "name": "Very large file: app/admin/usados/page.tsx (2324 lines)", "shortDescription": {"text": "Very large file: app/admin/usados/page.tsx (2324 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-4f46471b0cc0207a", "name": "Very large file: app/admin/estoque/page.tsx (10123 lines)", "shortDescription": {"text": "Very large file: app/admin/estoque/page.tsx (10123 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-c9d5634309813b8c", "name": "Very large file: app/admin/instagram/[id]/page.tsx (1169 lines)", "shortDescription": {"text": "Very large file: app/admin/instagram/[id]/page.tsx (1169 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-fd550cc6ba904747", "name": "Very large file: app/admin/comissoes/page.tsx (1321 lines)", "shortDescription": {"text": "Very large file: app/admin/comissoes/page.tsx (1321 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-7ef067a75fcccaba", "name": "Very large file: app/admin/entregas/page.tsx (5403 lines)", "shortDescription": {"text": "Very large file: app/admin/entregas/page.tsx (5403 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-4e71d9153c09d6f4", "name": "Very large file: lib/pdf-report.ts (1311 lines)", "shortDescription": {"text": "Very large file: lib/pdf-report.ts (1311 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-00228f02bee34e99", "name": "Very large file: lib/mcp-tools.ts (1746 lines)", "shortDescription": {"text": "Very large file: lib/mcp-tools.ts (1746 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "12 test file(s) for 629 source file(s) (ratio 0.02). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-25563efdd6767c04", "name": "78 TODO/FIXME markers", "shortDescription": {"text": "78 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 321 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 664 placeholder/mock markers across 101 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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. 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-a361fe9413945115", "name": "Legacy-named symbol `calc_minimos_v2` in scripts/calc_minimos_v2.mjs:221", "shortDescription": {"text": "Legacy-named symbol `calc_minimos_v2` in scripts/calc_minimos_v2.mjs:221"}, "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-512109eb6d438673", "name": "Commented-code block (8 lines) in scripts/test-multi-troca-e2e.mjs:12", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/test-multi-troca-e2e.mjs: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-6accbea03e80f47c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/insert-acaminho-pendencias.mjs:39", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/insert-acaminho-pendencias.mjs:39"}, "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-b91274d5d33172a7", "name": "Commented-code block (11 lines) in scripts/test-comissoes-paloma.mjs:3", "shortDescription": {"text": "Commented-code block (11 lines) in scripts/test-comissoes-paloma.mjs: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-f39980fd1646c63d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/populate-mostruario.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/populate-mostruario.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-7f9b7a6dfd3e4177", "name": "Commented-code block (5 lines) in components/BeneficiosSalto.tsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in components/BeneficiosSalto.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-3799ae34f63534f1", "name": "Commented-code block (5 lines) in components/FlexiblePaymentSimulator.tsx:120", "shortDescription": {"text": "Commented-code block (5 lines) in components/FlexiblePaymentSimulator.tsx:120"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-987bb771f255f022", "name": "Commented-code block (5 lines) in components/PerfilBanner.tsx:31", "shortDescription": {"text": "Commented-code block (5 lines) in components/PerfilBanner.tsx:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa1a11efaa068599", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/PerfilBanner.tsx:72", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/PerfilBanner.tsx:72"}, "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-cd3b3f95f21c8114", "name": "Commented-code block (5 lines) in components/StepClientData.tsx:16", "shortDescription": {"text": "Commented-code block (5 lines) in components/StepClientData.tsx:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e9025e226bed9d8c", "name": "Commented-code block (7 lines) in components/TradeInCalculatorMulti.tsx:77", "shortDescription": {"text": "Commented-code block (7 lines) in components/TradeInCalculatorMulti.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-5e7b05335e67be76", "name": "Commented-code block (5 lines) in components/StepUsedDeviceMulti.tsx:31", "shortDescription": {"text": "Commented-code block (5 lines) in components/StepUsedDeviceMulti.tsx:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a1ee6490b385774", "name": "Commented-code block (5 lines) in components/UpgradeLogico.tsx:15", "shortDescription": {"text": "Commented-code block (5 lines) in components/UpgradeLogico.tsx: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-d78afa8100560f8d", "name": "Commented-code block (5 lines) in components/StepQuote.tsx:191", "shortDescription": {"text": "Commented-code block (5 lines) in components/StepQuote.tsx:191"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6bf5e3fb404b4958", "name": "Commented-code block (6 lines) in components/StepManualHandoff.tsx:47", "shortDescription": {"text": "Commented-code block (6 lines) in components/StepManualHandoff.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-71e9627ce3d24dee", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/StepManualHandoff.tsx:401", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/StepManualHandoff.tsx: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-a8c6c03e448a9b71", "name": "Commented-code block (5 lines) in components/StepAccessoryUsed.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in components/StepAccessoryUsed.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-3f3bba910d00d8f7", "name": "Commented-code block (5 lines) in components/StepNewDevice.tsx:172", "shortDescription": {"text": "Commented-code block (5 lines) in components/StepNewDevice.tsx:172"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29dc240b7cdf8549", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/StepNewDevice.tsx:656", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/StepNewDevice.tsx:656"}, "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-8e88bd821fae300f", "name": "Commented-code block (5 lines) in components/admin/TradeInQuestionsAdmin.tsx:145", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/TradeInQuestionsAdmin.tsx:145"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9541c92dc753e168", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/TradeInQuestionsAdmin.tsx:74", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/TradeInQuestionsAdmin.tsx:74"}, "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-91617859cf6683d4", "name": "Commented-code block (5 lines) in components/admin/ComissoesPhase2Card.tsx:144", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/ComissoesPhase2Card.tsx: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-1e532f68b1e39c62", "name": "Commented-code block (5 lines) in components/admin/PrecoManualModal.tsx:67", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/PrecoManualModal.tsx:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8628f06008c48d3", "name": "Commented-code block (6 lines) in components/admin/AcessoriosPrecos.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in components/admin/AcessoriosPrecos.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-31d5ecb0dcfa3213", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/AcessoriosPrecos.tsx:122", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/AcessoriosPrecos.tsx:122"}, "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-d6e6e2397391d8cb", "name": "Commented-code block (5 lines) in components/admin/CanalSimuladorCard.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/CanalSimuladorCard.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-befac1977ce0e612", "name": "Commented-code block (5 lines) in components/admin/SkuFilterBanner.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/SkuFilterBanner.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-340b1c7c9d8aa6db", "name": "Commented-code block (6 lines) in components/admin/CashbackInput.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in components/admin/CashbackInput.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-fdc59f206291c658", "name": "Commented-code block (5 lines) in components/admin/produto-spec-row.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/produto-spec-row.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-b3ac75a92608db74", "name": "Commented-code block (6 lines) in components/admin/ChecklistTradeInModal.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in components/admin/ChecklistTradeInModal.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-3353f156e4f69111", "name": "Commented-code block (7 lines) in components/admin/SerialHistoryAlert.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in components/admin/SerialHistoryAlert.tsx: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-809e0a53b73a0ad9", "name": "Commented-code block (6 lines) in components/admin/SuperSearch.tsx:9", "shortDescription": {"text": "Commented-code block (6 lines) in components/admin/SuperSearch.tsx: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-e718ee5e46ea73af", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/SuperSearch.tsx:985", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/SuperSearch.tsx:985"}, "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-911b265d3a94f912", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/PecasTrocadasConfig.tsx:49", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/PecasTrocadasConfig.tsx:49"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dabbae5c40d6769d", "name": "Commented-code block (7 lines) in components/admin/AdicionarProdutoEncomendaModal.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in components/admin/AdicionarProdutoEncomendaModal.tsx: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-2e3754fd8d1b4d89", "name": "Commented-code block (5 lines) in components/admin/FolhaSalarialCard.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/FolhaSalarialCard.tsx: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-61a86bc37be9f2d8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/FolhaSalarialCard.tsx:92", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/FolhaSalarialCard.tsx:92"}, "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-6eade8c359468b26", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/BalancoPorCorModal.tsx:137", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/BalancoPorCorModal.tsx:137"}, "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-28fc0c36636e65b8", "name": "Commented-code block (5 lines) in components/admin/AdminShell.tsx:71", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/AdminShell.tsx:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8486b440d547d216", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/AdminShell.tsx:108", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/AdminShell.tsx:108"}, "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-0054c3789e2df024", "name": "Commented-code block (6 lines) in components/admin/EncomendasPendentesList.tsx:35", "shortDescription": {"text": "Commented-code block (6 lines) in components/admin/EncomendasPendentesList.tsx: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-626b80c44f497158", "name": "Commented-code block (8 lines) in components/admin/EncomendasMensaisSection.tsx:90", "shortDescription": {"text": "Commented-code block (8 lines) in components/admin/EncomendasMensaisSection.tsx:90"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ea8fa2f81f781f2", "name": "Commented-code block (5 lines) in components/admin/JanelaPremiumBadge.tsx:9", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/JanelaPremiumBadge.tsx: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-1dd29e259ddcf204", "name": "Commented-code block (5 lines) in components/admin/EncomendasFinalizadasList.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/EncomendasFinalizadasList.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-6e44ca0db3112ff9", "name": "Commented-code block (6 lines) in components/admin/EntregadorView.tsx:673", "shortDescription": {"text": "Commented-code block (6 lines) in components/admin/EntregadorView.tsx:673"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4fed526b8ec09202", "name": "Commented-code block (5 lines) in components/admin/ProdutoSpecFields.tsx:175", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/ProdutoSpecFields.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-b0f9f5e7d049c166", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/ProdutoSpecFields.tsx:345", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/ProdutoSpecFields.tsx:345"}, "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-778dd1c864433f54", "name": "Commented-code block (5 lines) in components/loja/ClienteProvider.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in components/loja/ClienteProvider.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-7ad914729ba1c0ee", "name": "Commented-code block (6 lines) in components/loja/ConfiguratorProduto.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in components/loja/ConfiguratorProduto.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-9cb8304ba19819c3", "name": "Commented-code block (5 lines) in components/loja/AvaliacoesProduto.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in components/loja/AvaliacoesProduto.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-a7621cc5adeeb95a", "name": "Commented-code block (6 lines) in components/loja/TradeInWidget.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in components/loja/TradeInWidget.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-bf64eb89b8105c98", "name": "Commented-code block (5 lines) in components/loja/ProdutoView.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in components/loja/ProdutoView.tsx: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-800f506d32e8dfea", "name": "Commented-code block (7 lines) in components/duvidas/ModalDuvidas.tsx:8", "shortDescription": {"text": "Commented-code block (7 lines) in components/duvidas/ModalDuvidas.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-a641173aefc0d8f6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/duvidas/ModalDuvidas.tsx:120", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/duvidas/ModalDuvidas.tsx:120"}, "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-d5588d21dbe80edf", "name": "Commented-code block (5 lines) in components/duvidas/BotaoDuvidas.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in components/duvidas/BotaoDuvidas.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-ac661797e8af1413", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/page.tsx:160", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/page.tsx:160"}, "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-fabedf6d00276889", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/catalogo/page.tsx:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/catalogo/page.tsx:15"}, "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-abc50212ed39a576", "name": "Commented-code block (5 lines) in app/api/create-mp-from-form/route.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/create-mp-from-form/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-8e38d35e34075144", "name": "Commented-code block (6 lines) in app/api/entregador/entregas/route.ts:55", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/entregador/entregas/route.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-e7a2a89b461850f0", "name": "Commented-code block (5 lines) in app/api/entregador/rota/route.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/entregador/rota/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-dcaced5a788fdf34", "name": "Commented-code block (8 lines) in app/api/leads/route.ts:11", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/leads/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-1a38e1c2bd7f5c0f", "name": "Commented-code block (5 lines) in app/api/webhook/zapi-inbox/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/webhook/zapi-inbox/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-0d744492fe21bb3f", "name": "Commented-code block (5 lines) in app/api/webhook/sms-optout/route.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/webhook/sms-optout/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-d5294da99325e19b", "name": "Commented-code block (5 lines) in app/api/mcp/route.ts:20", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/mcp/route.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-db009b641e000932", "name": "Commented-code block (5 lines) in app/api/vendas/route.ts:19", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/vendas/route.ts:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68dab011e7b1d492", "name": "Commented-code block (5 lines) in app/api/vendas/devolver-caucao/route.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/vendas/devolver-caucao/route.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-db504c779ee5728f", "name": "Commented-code block (10 lines) in app/api/vendas/gerar-contrato-auto/route.ts:6", "shortDescription": {"text": "Commented-code block (10 lines) in app/api/vendas/gerar-contrato-auto/route.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-2b3898a0a274e363", "name": "Commented-code block (5 lines) in app/api/vendas/from-formulario/route.ts:14", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/vendas/from-formulario/route.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-1acf365ef74ef325", "name": "Commented-code block (9 lines) in app/api/funnel/route.ts:220", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/funnel/route.ts:220"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-06af114abdff359d", "name": "Commented-code block (6 lines) in app/api/funnel/avaliacao-media/route.ts:16", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/funnel/avaliacao-media/route.ts:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c724cb31b1dd4ccb", "name": "Commented-code block (5 lines) in app/api/funnel/perfil-pessoa/route.ts:19", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/funnel/perfil-pessoa/route.ts:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-80edd3576af08e90", "name": "Commented-code block (7 lines) in app/api/funnel/perfis/route.ts:11", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/funnel/perfis/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-710900a5d32dd624", "name": "Commented-code block (6 lines) in app/api/saldos/route.ts:39", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/saldos/route.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-2ede36326ff29e6f", "name": "Commented-code block (7 lines) in app/api/termo/[id]/wa-redirect/route.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/termo/[id]/wa-redirect/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-58c77b2440dd10d3", "name": "Commented-code block (7 lines) in app/api/encomendas/route.ts:81", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/encomendas/route.ts:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68a0490c094a8780", "name": "Commented-code block (5 lines) in app/api/mp-webhook/route.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/mp-webhook/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-6a59f4b056537c1a", "name": "Commented-code block (6 lines) in app/api/admin/campanhas-sms/route.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/campanhas-sms/route.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-fb3e3615c285521a", "name": "Commented-code block (12 lines) in app/api/admin/promo-enviada/route.ts:4", "shortDescription": {"text": "Commented-code block (12 lines) in app/api/admin/promo-enviada/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-8d4be675aa3ab164", "name": "Commented-code block (8 lines) in app/api/admin/catalogo/route.ts:21", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/admin/catalogo/route.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-f7a97d69c6fcad20", "name": "Commented-code block (6 lines) in app/api/admin/clientes/route.ts:292", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/clientes/route.ts:292"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3947476f84314cfe", "name": "Commented-code block (5 lines) in app/api/admin/clientes/rename/route.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/clientes/rename/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-8db552aa7408e935", "name": "Commented-code block (5 lines) in app/api/admin/clientes/lookup/route.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/clientes/lookup/route.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-59a8ef4ed9f79022", "name": "Commented-code block (8 lines) in app/api/admin/followup/route.ts:64", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/admin/followup/route.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-639ac23e5a37c066", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/followup/route.ts:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/followup/route.ts:47"}, "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-146459d27ab7b671", "name": "Commented-code block (7 lines) in app/api/admin/mostruario/upload/route.ts:9", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/admin/mostruario/upload/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-b8ca2b62022ca45f", "name": "Commented-code block (5 lines) in app/api/admin/entregadores/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/entregadores/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-81b240d3b54c72ff", "name": "Commented-code block (5 lines) in app/api/admin/sms-cupom/route.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/sms-cupom/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-f8e01034174840f7", "name": "Commented-code block (5 lines) in app/api/admin/validate-imei/route.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/validate-imei/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-854b837a01122e83", "name": "Commented-code block (5 lines) in app/api/admin/vendas/encaminhar-entrega/route.ts:216", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/vendas/encaminhar-entrega/route.ts:216"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d3cb87e4ffa41ad", "name": "Commented-code block (8 lines) in app/api/admin/visao-entregador/route.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/admin/visao-entregador/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-d9e25f492019ea21", "name": "Commented-code block (7 lines) in app/api/admin/sync-formularios-preenchidos/route.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/admin/sync-formularios-preenchidos/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-aef1031cca494fde", "name": "Commented-code block (5 lines) in app/api/admin/conversas/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/conversas/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-60cab9f877a08cd8", "name": "Commented-code block (8 lines) in app/api/admin/cashback/inspecionar-margem/route.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/admin/cashback/inspecionar-margem/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-3a480d0dc4f7eb06", "name": "Commented-code block (6 lines) in app/api/admin/cashback/processar-expiracoes/route.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/cashback/processar-expiracoes/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-94dd9a39d87b7a96", "name": "Commented-code block (6 lines) in app/api/admin/cashback/processar-liberacoes/route.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/cashback/processar-liberacoes/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-12fda8904594e441", "name": "Commented-code block (9 lines) in app/api/admin/search/route.ts:29", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/admin/search/route.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-b32f2f689e94ba52", "name": "Commented-code block (6 lines) in app/api/admin/prejuizos/route.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/prejuizos/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-9b4e3aaa8602bc50", "name": "Commented-code block (5 lines) in app/api/admin/precos/route.ts:157", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/precos/route.ts:157"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3bff6cfce7806959", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/precos/route.ts:238", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/precos/route.ts:238"}, "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-ca530e4b3958148f", "name": "Commented-code block (5 lines) in app/api/admin/precos/debug-historico/route.ts:10", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/precos/debug-historico/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-f6e15d2e5cd187a4", "name": "Commented-code block (7 lines) in app/api/admin/mp-preference/route.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/admin/mp-preference/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-32bc38594e406322", "name": "Commented-code block (5 lines) in app/api/admin/sku/comprar-urgente/route.ts:13", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/sku/comprar-urgente/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-1171c25c2bccf80a", "name": "Commented-code block (6 lines) in app/api/admin/sku/info/route.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/sku/info/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-3119463b37087da5", "name": "Commented-code block (5 lines) in app/api/admin/sku/cross-sell/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/sku/cross-sell/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-4f84268b0820192f", "name": "Commented-code block (5 lines) in app/api/admin/sku/fix-cor/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/sku/fix-cor/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-6f344f073e8e2d43", "name": "Commented-code block (9 lines) in app/api/admin/sku/reconciliacao/route.ts:41", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/admin/sku/reconciliacao/route.ts:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0db0b9e48ba50478", "name": "Commented-code block (7 lines) in app/api/admin/enviar-sms/route.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/admin/enviar-sms/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-48fa0fed7965fbb8", "name": "Commented-code block (6 lines) in app/api/admin/preco-manual/route.ts:161", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/preco-manual/route.ts: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-699183b56acf14bb", "name": "Commented-code block (7 lines) in app/api/admin/auditoria-semanal/route.ts:56", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/admin/auditoria-semanal/route.ts:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46ff54ddcd641647", "name": "Commented-code block (9 lines) in app/api/admin/contatar/route.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/admin/contatar/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-e2c9d390592a6298", "name": "Commented-code block (6 lines) in app/api/admin/balanco-por-cor/route.ts:12", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/balanco-por-cor/route.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-26ef7c784f7fa61c", "name": "Commented-code block (7 lines) in app/api/admin/auditoria/route.ts:68", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/admin/auditoria/route.ts: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-6ad6fafc2bb5f4f5", "name": "Commented-code block (5 lines) in app/api/admin/usados/route.ts:411", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/usados/route.ts:411"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71d96b7fe159f3a1", "name": "Commented-code block (5 lines) in app/api/admin/estoque/check-serial/route.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/estoque/check-serial/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-d4279e0bb2f65bf6", "name": "Commented-code block (5 lines) in app/api/admin/analytics-vendas/route.ts:73", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/analytics-vendas/route.ts:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed3626db2ef42e28", "name": "Commented-code block (7 lines) in app/api/admin/exportar/route.ts:42", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/admin/exportar/route.ts:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-76ae210bc69009d8", "name": "Commented-code block (5 lines) in app/api/admin/comissoes-config/route.ts:134", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/comissoes-config/route.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-90529cdf30766e3b", "name": "Commented-code block (6 lines) in app/api/admin/comissoes/route.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/comissoes/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-41f0e1475d33a579", "name": "Commented-code block (5 lines) in app/api/admin/comissoes/transferir/route.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/comissoes/transferir/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-708bc19348560220", "name": "Commented-code block (5 lines) in app/api/admin/historico-precos-tabela/route.ts:42", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/historico-precos-tabela/route.ts:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e04ed35eec08efcf", "name": "Commented-code block (7 lines) in app/api/admin/entregas/route.ts:11", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/admin/entregas/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-96a408c5d81af961", "name": "Commented-code block (6 lines) in app/api/admin/entregas/otimizar-rota/route.ts:15", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/entregas/otimizar-rota/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-d37078133a4c4812", "name": "Commented-code block (5 lines) in app/api/admin/stats/route.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/stats/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-914fd51788e19189", "name": "Commented-code block (6 lines) in app/api/admin/dividas/[id]/route.ts:50", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/dividas/[id]/route.ts:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5d0dde36a6ed2e17", "name": "Commented-code block (6 lines) in app/api/admin/link-compras/route.ts:42", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/link-compras/route.ts:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-56195050f6afc97e", "name": "Commented-code block (11 lines) in app/api/admin/link-compras/encaminhar-entrega/route.ts:59", "shortDescription": {"text": "Commented-code block (11 lines) in app/api/admin/link-compras/encaminhar-entrega/route.ts:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e2fc05da81b3e2a", "name": "Commented-code block (5 lines) in app/api/admin/alerta-preco/silenciar/route.ts:67", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/alerta-preco/silenciar/route.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-1bae946deb4a155f", "name": "Commented-code block (8 lines) in app/api/admin/duvidas/metricas/route.ts:7", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/admin/duvidas/metricas/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-524ff3d2835bee5e", "name": "Commented-code block (8 lines) in app/api/loja/avaliacoes/route.ts:7", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/loja/avaliacoes/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-313046a35a4f8086", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/route.ts:98", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/route.ts:98"}, "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-85b0fad75710a36e", "name": "Commented-code block (7 lines) in app/api/cron/relatorio-dono/route.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/cron/relatorio-dono/route.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-f9a776c9658aa4a5", "name": "Commented-code block (6 lines) in app/api/cron/followup-simulacoes/route.ts:75", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/followup-simulacoes/route.ts:75"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e0b327a3a3b4c35", "name": "Commented-code block (6 lines) in app/api/cron/snapshot-estoque/route.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/snapshot-estoque/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-3c0b82e162dfa8bf", "name": "Commented-code block (6 lines) in app/api/cron/backup-drive/route.ts:32", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/backup-drive/route.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-ecf05c999c6d21d5", "name": "Commented-code block (6 lines) in app/api/cron/alerta-preco/route.ts:92", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/alerta-preco/route.ts:92"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92dcc585a9d62179", "name": "Commented-code block (6 lines) in app/api/estoque/route.ts:260", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/estoque/route.ts:260"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a24f26892ccfff7b", "name": "Commented-code block (5 lines) in app/api/instagram/render-post/route.ts:58", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/instagram/render-post/route.ts:58"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4fd51e61d074aaa0", "name": "Commented-code block (7 lines) in app/api/instagram/ilustrar-slides/route.ts:536", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/instagram/ilustrar-slides/route.ts:536"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-309325686ef227cb", "name": "Commented-code block (5 lines) in app/api/link-compras-auto/route.ts:40", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/link-compras-auto/route.ts:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7cef1eda333ce5ce", "name": "Commented-code block (5 lines) in app/api/link-compras/upload-print/route.ts:230", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/link-compras/upload-print/route.ts:230"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-25a92e0e984a742b", "name": "Commented-code block (6 lines) in app/api/link-compras/[code]/preenchimento/route.ts:59", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/link-compras/[code]/preenchimento/route.ts:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31dd46fca8c7ea7b", "name": "Commented-code block (6 lines) in app/api/perfil-banner/registrar/route.ts:48", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/perfil-banner/registrar/route.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-b797e4547b196dce", "name": "Commented-code block (6 lines) in app/troca/page.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in app/troca/page.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-7a45659b5fdae4a3", "name": "Commented-code block (5 lines) in app/troca/[op]/page.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in app/troca/[op]/page.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-f0887e83525ab9c5", "name": "Commented-code block (5 lines) in app/c/[d]/page.tsx:20", "shortDescription": {"text": "Commented-code block (5 lines) in app/c/[d]/page.tsx: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-8190e9cecffedd94", "name": "Commented-code block (5 lines) in app/compra/page.tsx:73", "shortDescription": {"text": "Commented-code block (5 lines) in app/compra/page.tsx:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21cb8af9fe7dc6c8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/compra/page.tsx:128", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/compra/page.tsx:128"}, "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-92d3357becd31491", "name": "Commented-code block (5 lines) in app/admin/comprar-urgente/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/comprar-urgente/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-36df9989292565fd", "name": "Commented-code block (6 lines) in app/admin/minhas-comissoes/page.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in app/admin/minhas-comissoes/page.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-07de14016e7bd491", "name": "Commented-code block (5 lines) in app/admin/catalogo/page.tsx:1005", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/catalogo/page.tsx:1005"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3528fd392554e6cd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/catalogo/page.tsx:676", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/catalogo/page.tsx:676"}, "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-4a134f7fcb19b35c", "name": "Commented-code block (11 lines) in app/admin/gastos/page.tsx:213", "shortDescription": {"text": "Commented-code block (11 lines) in app/admin/gastos/page.tsx:213"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9677adb46e58fe27", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/gastos/page.tsx:433", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/gastos/page.tsx:433"}, "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-c96da532ca2520cb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/clientes/page.tsx:498", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/clientes/page.tsx:498"}, "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-2febcde94e95f77e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/mostruario/page.tsx:148", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/mostruario/page.tsx:148"}, "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-5fd198ed83a7219c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/analytics/page.tsx:112", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/analytics/page.tsx:112"}, "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-dc330ed006d6c6b0", "name": "Commented-code block (6 lines) in app/admin/loja-banner/page.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in app/admin/loja-banner/page.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-56170ef0810b9b85", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/fornecedores/page.tsx:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/fornecedores/page.tsx:40"}, "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-d021c234fd9a84c5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/operacoes/page.tsx:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/operacoes/page.tsx:56"}, "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-d1879ecc51c3b2b2", "name": "Commented-code block (7 lines) in app/admin/avaliacoes/page.tsx:5", "shortDescription": {"text": "Commented-code block (7 lines) in app/admin/avaliacoes/page.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-5bbde35488f99b7d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/avaliacoes/page.tsx:74", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/avaliacoes/page.tsx:74"}, "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-c2e263cd7d1b49a0", "name": "Commented-code block (7 lines) in app/admin/alertas-preco/page.tsx:6", "shortDescription": {"text": "Commented-code block (7 lines) in app/admin/alertas-preco/page.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-cf93eb62be4b07be", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/loja-produtos/page.tsx:473", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/loja-produtos/page.tsx:473"}, "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-53794a3e78f41b0f", "name": "Commented-code block (8 lines) in app/admin/simulacoes/page.tsx:115", "shortDescription": {"text": "Commented-code block (8 lines) in app/admin/simulacoes/page.tsx:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24e21deab11ecb4e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/simulacoes/page.tsx:784", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/simulacoes/page.tsx:784"}, "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-4734f0bac924dafb", "name": "Commented-code block (9 lines) in app/admin/simulacoes/_components/DuvidaDetailModal.tsx:8", "shortDescription": {"text": "Commented-code block (9 lines) in app/admin/simulacoes/_components/DuvidaDetailModal.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-9aca89835dcf7cab", "name": "Commented-code block (6 lines) in app/admin/simulacoes/_components/DuvidasPanel.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in app/admin/simulacoes/_components/DuvidasPanel.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-f917bf995d652e66", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/simulacoes/_components/DuvidasPanel.tsx:132", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/simulacoes/_components/DuvidasPanel.tsx:132"}, "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-11d29d95904b0075", "name": "Commented-code block (8 lines) in app/admin/simulacoes/_components/DuvidasEditor.tsx:5", "shortDescription": {"text": "Commented-code block (8 lines) in app/admin/simulacoes/_components/DuvidasEditor.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-d153b27bd7afd9e0", "name": "Legacy-named symbol `countLegacy` in app/admin/vendas/page.tsx:1254", "shortDescription": {"text": "Legacy-named symbol `countLegacy` in app/admin/vendas/page.tsx:1254"}, "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-21fe1775cb1240bc", "name": "Commented-code block (5 lines) in app/admin/vendas/page.tsx:46", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/vendas/page.tsx:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a329432b924bfea", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/vendas/page.tsx:563", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/vendas/page.tsx:563"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eecae9b797650262", "name": "Commented-code block (5 lines) in app/admin/dashboard/page.tsx:42", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/dashboard/page.tsx:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b0860011f6e707ab", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/dashboard/page.tsx:110", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/dashboard/page.tsx:110"}, "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-c305af63900e2fbd", "name": "Commented-code block (8 lines) in app/admin/produtos-funcionarios/page.tsx:147", "shortDescription": {"text": "Commented-code block (8 lines) in app/admin/produtos-funcionarios/page.tsx:147"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e28606f8b04d9426", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/produtos-funcionarios/page.tsx:193", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/produtos-funcionarios/page.tsx:193"}, "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-f2721a95772725d7", "name": "Commented-code block (5 lines) in app/admin/saldos/page.tsx:133", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/saldos/page.tsx: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-08aba1b9dc0473d1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/saldos/page.tsx:96", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/saldos/page.tsx:96"}, "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-6cdb95ba073f3c70", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/conversas/page.tsx:128", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/conversas/page.tsx:128"}, "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-53010c7983dd72d6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/conversas/canais/page.tsx:77", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/conversas/canais/page.tsx:77"}, "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-3f098b777f6ba9d9", "name": "Commented-code block (8 lines) in app/admin/cashback/page.tsx:6", "shortDescription": {"text": "Commented-code block (8 lines) in app/admin/cashback/page.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-a2dd87f4ebcdd1c3", "name": "Commented-code block (5 lines) in app/admin/prejuizos/page.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/prejuizos/page.tsx: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-19ccf3db0221c15f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/encomendas/page.tsx:576", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/encomendas/page.tsx:576"}, "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-719784306014d02f", "name": "Commented-code block (6 lines) in app/admin/gerar-link/page.tsx:29", "shortDescription": {"text": "Commented-code block (6 lines) in app/admin/gerar-link/page.tsx: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-2df38dc3fe1da9ae", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/gerar-link/page.tsx:99", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/gerar-link/page.tsx:99"}, "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-488fb318061b13cc", "name": "Commented-code block (8 lines) in app/admin/etiquetas/page.tsx:27", "shortDescription": {"text": "Commented-code block (8 lines) in app/admin/etiquetas/page.tsx: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-21f362ad1258392d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/etiquetas/page.tsx:230", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/etiquetas/page.tsx:230"}, "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-09faacaa3d680876", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/precos/page.tsx:309", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/precos/page.tsx:309"}, "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-a430f4be1e3924a4", "name": "Commented-code block (5 lines) in app/admin/financeiro/dividas/[id]/page.tsx:137", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/financeiro/dividas/[id]/page.tsx: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-879d7c0c3cedb411", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/financeiro/dividas/[id]/page.tsx:636", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/financeiro/dividas/[id]/page.tsx:636"}, "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-c7e9352186170d6f", "name": "Commented-code block (5 lines) in app/admin/log/page.tsx:167", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/log/page.tsx:167"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff3fed3c0a26f29f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/log/page.tsx:121", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/log/page.tsx:121"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dde3519347e93cda", "name": "Commented-code block (7 lines) in app/admin/auditoria/page.tsx:1407", "shortDescription": {"text": "Commented-code block (7 lines) in app/admin/auditoria/page.tsx:1407"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-81a29c04205d2a4a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/auditoria/page.tsx:1624", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/auditoria/page.tsx:1624"}, "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-d7cfcc7e4a2214a1", "name": "Commented-code block (9 lines) in app/admin/orcamento/page.tsx:185", "shortDescription": {"text": "Commented-code block (9 lines) in app/admin/orcamento/page.tsx:185"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0de6bdb60eca675", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/orcamento/page.tsx:234", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/orcamento/page.tsx:234"}, "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-3ef01e878196a222", "name": "Commented-code block (6 lines) in app/admin/usados/page.tsx:841", "shortDescription": {"text": "Commented-code block (6 lines) in app/admin/usados/page.tsx:841"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d1634f13015b187", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/usados/page.tsx:318", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/usados/page.tsx:318"}, "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-df824c21e3605c69", "name": "Commented-code block (5 lines) in app/admin/estoque/page.tsx:116", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/estoque/page.tsx:116"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-11a23c3fa27ff8a1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/estoque/page.tsx:2202", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/estoque/page.tsx:2202"}, "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-d3c044cd2eb3e142", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/importar/page.tsx:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/importar/page.tsx:30"}, "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-9f06d0c9b7bc9e38", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/analytics-vendas/page.tsx:227", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/analytics-vendas/page.tsx:227"}, "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-9331c290f6acb162", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/cotacao/page.tsx:42", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/cotacao/page.tsx:42"}, "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-b77695741ed0606f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/mapa-vendas/page.tsx:118", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/mapa-vendas/page.tsx:118"}, "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-acd210408c27e399", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/recebiveis/page.tsx:92", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/recebiveis/page.tsx:92"}, "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-4667138efb1d12b9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/configuracoes/page.tsx:42", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/configuracoes/page.tsx:42"}, "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-72586d7968420659", "name": "Commented-code block (6 lines) in app/admin/instagram/[id]/page.tsx:239", "shortDescription": {"text": "Commented-code block (6 lines) in app/admin/instagram/[id]/page.tsx:239"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-934615d6ef0d7a7e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/instagram/[id]/page.tsx:274", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/instagram/[id]/page.tsx:274"}, "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-b9dcbbdaecfe2252", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/instagram/configuracoes/page.tsx:81", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/instagram/configuracoes/page.tsx:81"}, "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-6f7381bcd33de27b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/migrations/page.tsx:82", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/migrations/page.tsx:82"}, "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-0623535b628f3e70", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/relatorio/page.tsx:84", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/relatorio/page.tsx:84"}, "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-ba2d0c6bfaa5cd9c", "name": "Commented-code block (5 lines) in app/admin/comissoes/page.tsx:155", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/comissoes/page.tsx:155"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-374e09c6717d92c7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/avisos-clientes/page.tsx:106", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/avisos-clientes/page.tsx:106"}, "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-c69cfef5434bb5e4", "name": "Commented-code block (5 lines) in app/admin/entregas/page.tsx:146", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/entregas/page.tsx:146"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0bfae54a110d6cf9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/entregas/page.tsx:826", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/entregas/page.tsx:826"}, "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-dfe7d5f6643fbe58", "name": "Legacy-named symbol `calculadora_misto_historico_v1` in app/admin/calculadora-taxas/page.tsx:251", "shortDescription": {"text": "Legacy-named symbol `calculadora_misto_historico_v1` in app/admin/calculadora-taxas/page.tsx:251"}, "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-d49fe52272b8e5ed", "name": "Commented-code block (5 lines) in app/admin/calculadora-taxas/page.tsx:36", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/calculadora-taxas/page.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-b94a5ef93e904abb", "name": "Commented-code block (8 lines) in app/loja/avaliar/[numero]/page.tsx:8", "shortDescription": {"text": "Commented-code block (8 lines) in app/loja/avaliar/[numero]/page.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-2ca7ea700df03893", "name": "Commented-code block (6 lines) in app/loja/checkout/page.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in app/loja/checkout/page.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-64824260efcbaa0e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/loja/checkout/page.tsx:122", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/loja/checkout/page.tsx:122"}, "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-f003743baae61e37", "name": "Commented-code block (8 lines) in app/loja/pedido/[numero]/page.tsx:9", "shortDescription": {"text": "Commented-code block (8 lines) in app/loja/pedido/[numero]/page.tsx: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-9906cf9fc88a389d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/produto/[slug]/page.tsx:198", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/produto/[slug]/page.tsx:198"}, "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-72d454be6b413ff1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/comparador/page.tsx:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/comparador/page.tsx:24"}, "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-e7ca8e11e5b14449", "name": "Commented-code block (5 lines) in app/pagamento-confirmado/page.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in app/pagamento-confirmado/page.tsx: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-72fd3039bec72497", "name": "Commented-code block (5 lines) in lib/sheets.ts:294", "shortDescription": {"text": "Commented-code block (5 lines) in lib/sheets.ts:294"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-acd394e57d81c067", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/sheets.ts:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/sheets.ts:10"}, "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-7218b2d6c59658c6", "name": "Commented-code block (5 lines) in lib/whatsappFollowUp.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in lib/whatsappFollowUp.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-08508f0114d8acb3", "name": "Legacy-named symbol `custom_cor_pt_v1` in lib/cor-pt.ts:68", "shortDescription": {"text": "Legacy-named symbol `custom_cor_pt_v1` in lib/cor-pt.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-765d925656ad7100", "name": "Commented-code block (5 lines) in lib/cor-pt.ts:215", "shortDescription": {"text": "Commented-code block (5 lines) in lib/cor-pt.ts:215"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2fd05f6d4d866a59", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/email.ts:103", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/email.ts:103"}, "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-37a38f49366bcd3d", "name": "Commented-code block (6 lines) in lib/vendas-trocas-sync.ts:108", "shortDescription": {"text": "Commented-code block (6 lines) in lib/vendas-trocas-sync.ts:108"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c9eea93827aa0f7c", "name": "Commented-code block (7 lines) in lib/honeypot-client.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/honeypot-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-c2b84573501ec766", "name": "Commented-code block (6 lines) in lib/duvidas-padrao.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in lib/duvidas-padrao.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-24a40c9e9065662b", "name": "Commented-code block (5 lines) in lib/ab-test-anchor.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/ab-test-anchor.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-bdd4e88c5a986d89", "name": "Commented-code block (5 lines) in lib/vendas-utils.ts:29", "shortDescription": {"text": "Commented-code block (5 lines) in lib/vendas-utils.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-3ca90a0231ca650e", "name": "Commented-code block (6 lines) in lib/track-event.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in lib/track-event.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-bf9a1eeae946662b", "name": "Commented-code block (5 lines) in lib/supabase-helpers.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/supabase-helpers.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-bc76e17f21775973", "name": "Commented-code block (9 lines) in lib/sku.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in lib/sku.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-8a507726dd1cc99e", "name": "Commented-code block (7 lines) in lib/sms.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/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-3c738f3bbb649619", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/sms.ts:179", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/sms.ts:179"}, "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-21a8990448edf827", "name": "Commented-code block (8 lines) in lib/calculations.ts:411", "shortDescription": {"text": "Commented-code block (8 lines) in lib/calculations.ts:411"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f78c47003b58a5f0", "name": "Commented-code block (6 lines) in lib/avisos-match.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in lib/avisos-match.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-2e0fe030a5e8c28d", "name": "Commented-code block (5 lines) in lib/codigo-retirada.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/codigo-retirada.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-44bfad25bb75cc04", "name": "Commented-code block (6 lines) in lib/infosimples.ts:104", "shortDescription": {"text": "Commented-code block (6 lines) in lib/infosimples.ts:104"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fcc7bf09db3c83d1", "name": "Commented-code block (5 lines) in lib/produto-display.ts:121", "shortDescription": {"text": "Commented-code block (5 lines) in lib/produto-display.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-e459011916d309fa", "name": "Commented-code block (6 lines) in lib/sku-validator.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in lib/sku-validator.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-b689b7de55b5ba73", "name": "Commented-code block (6 lines) in lib/frete-rj.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in lib/frete-rj.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-977e0faabcda8050", "name": "Commented-code block (5 lines) in lib/troca-nome.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/troca-nome.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-b2b93f1b518e27a1", "name": "Legacy-named symbol `tigrao_utm_v1` in lib/utm-tracker.ts:20", "shortDescription": {"text": "Legacy-named symbol `tigrao_utm_v1` in lib/utm-tracker.ts:20"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bed68ca9cc4a2b05", "name": "Commented-code block (8 lines) in lib/utm-tracker.ts:6", "shortDescription": {"text": "Commented-code block (8 lines) in lib/utm-tracker.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-224a1bea3700d0f0", "name": "Commented-code block (6 lines) in lib/zapi.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/zapi.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-0ffcb1b80bc5ca3a", "name": "Commented-code block (6 lines) in lib/gdrive.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in lib/gdrive.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-85e0620f190570f9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/gdrive.ts:112", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/gdrive.ts:112"}, "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-96943f7cfeed71ac", "name": "Commented-code block (5 lines) in lib/prejuizo-format.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/prejuizo-format.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-0c8cccc5d0405434", "name": "Commented-code block (7 lines) in lib/vendedores.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/vendedores.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-67c5cbe045858a74", "name": "Commented-code block (5 lines) in lib/duvidas-padrao-server.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in lib/duvidas-padrao-server.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-a811aa61e382ceeb", "name": "Commented-code block (11 lines) in lib/comissoes-paloma.ts:3", "shortDescription": {"text": "Commented-code block (11 lines) in lib/comissoes-paloma.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-0767d6a9e93286ce", "name": "Commented-code block (19 lines) in lib/gastos-utils.ts:9", "shortDescription": {"text": "Commented-code block (19 lines) in lib/gastos-utils.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-99af4628a5568410", "name": "Commented-code block (9 lines) in lib/sms-base-clientes.ts:12", "shortDescription": {"text": "Commented-code block (9 lines) in lib/sms-base-clientes.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-a571690c08175939", "name": "Commented-code block (9 lines) in lib/formatPedido.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in lib/formatPedido.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-ad67c3541b3b4264", "name": "Commented-code block (6 lines) in lib/pdf-termo-garantia-seminovo.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/pdf-termo-garantia-seminovo.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-a4680b284a5688d2", "name": "Commented-code block (6 lines) in lib/spec-labels.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/spec-labels.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-d0a81ac818a5a1f8", "name": "Commented-code block (6 lines) in lib/contrato-auto.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in lib/contrato-auto.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-a61d274f8002a3e9", "name": "Commented-code block (5 lines) in lib/pdf-encomenda.ts:136", "shortDescription": {"text": "Commented-code block (5 lines) in lib/pdf-encomenda.ts:136"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-20a1cc575c7c6bc0", "name": "Commented-code block (6 lines) in lib/produto-cores.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/produto-cores.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-27da43e6a4829d72", "name": "Commented-code block (5 lines) in lib/saldos.ts:71", "shortDescription": {"text": "Commented-code block (5 lines) in lib/saldos.ts:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-310863ca7c07b75c", "name": "Commented-code block (7 lines) in lib/loja-tradein.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in lib/loja-tradein.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-06028904ca357610", "name": "Commented-code block (8 lines) in lib/meta-capi.ts:11", "shortDescription": {"text": "Commented-code block (8 lines) in lib/meta-capi.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-8935a44f096a3090", "name": "Commented-code block (7 lines) in lib/upgrade-logico.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in lib/upgrade-logico.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-5af966e0708701fe", "name": "Commented-code block (6 lines) in lib/vendedores-hooks.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in lib/vendedores-hooks.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-949c224f61ed4ba4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/vendedores-hooks.ts:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/vendedores-hooks.ts:28"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8e4e793060807a3c", "name": "Commented-code block (9 lines) in lib/produto-sort.ts:32", "shortDescription": {"text": "Commented-code block (9 lines) in lib/produto-sort.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-7bc62e5953e0f2e1", "name": "Commented-code block (6 lines) in lib/mpPreference.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/mpPreference.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-2d0a6a6d78aceb30", "name": "Commented-code block (5 lines) in lib/loja-produtos.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/loja-produtos.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-8e876fc74faac511", "name": "Commented-code block (5 lines) in lib/mask.ts:31", "shortDescription": {"text": "Commented-code block (5 lines) in lib/mask.ts:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4ad97a7fe11e905", "name": "Commented-code block (5 lines) in lib/mcp-tools.ts:554", "shortDescription": {"text": "Commented-code block (5 lines) in lib/mcp-tools.ts:554"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f0f2e18b94efcf8f", "name": "Commented-code block (10 lines) in lib/criarVendasDePedido.ts:5", "shortDescription": {"text": "Commented-code block (10 lines) in lib/criarVendasDePedido.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-69e7307d0f5a0a49", "name": "Commented-code block (8 lines) in lib/entregador-auth.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in lib/entregador-auth.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-e06ad54a435a350f", "name": "Commented-code block (6 lines) in lib/admin-types.ts:99", "shortDescription": {"text": "Commented-code block (6 lines) in lib/admin-types.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-28b7bebd283a0066", "name": "Commented-code block (6 lines) in lib/link-heuristics.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in lib/link-heuristics.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-3517a70af731b9d7", "name": "Commented-code block (5 lines) in lib/watch-cores.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/watch-cores.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-6f451bfaee172b01", "name": "Commented-code block (6 lines) in lib/normaliza-vendedor.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in lib/normaliza-vendedor.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-0fb838462d44b34a", "name": "Commented-code block (5 lines) in lib/comissoes-utils.ts:15", "shortDescription": {"text": "Commented-code block (5 lines) in lib/comissoes-utils.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-1608da95c223da65", "name": "Commented-code block (9 lines) in lib/contrato-encomenda-auto.ts:7", "shortDescription": {"text": "Commented-code block (9 lines) in lib/contrato-encomenda-auto.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-f3d7b3e6a8502de7", "name": "Commented-code block (6 lines) in lib/iphone-specs.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in lib/iphone-specs.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-f749d08ffb85dbd1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/useAutoRefetch.ts:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/useAutoRefetch.ts:15"}, "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-9155234ce0e07d2c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/telegram.ts:68", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/telegram.ts:68"}, "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-f7160f99b03dce9c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/zapsign.ts:96", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/zapsign.ts:96"}, "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-97d88344e3e36543", "name": "Commented-code block (6 lines) in lib/cliente-lookup.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in lib/cliente-lookup.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-88af190c6f58585b", "name": "Commented-code block (5 lines) in lib/maps-link.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/maps-link.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-567343ae70a7c673", "name": "Commented-code block (5 lines) in lib/entrega-from-link.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/entrega-from-link.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-6c5c00412b799966", "name": "Commented-code block (5 lines) in lib/whatsapp-templates/formatDuvidaMessage.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in lib/whatsapp-templates/formatDuvidaMessage.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-118c630cdd2f520c", "name": "Commented-code block (5 lines) in lib/instagram/slide-layout.tsx:165", "shortDescription": {"text": "Commented-code block (5 lines) in lib/instagram/slide-layout.tsx:165"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1947b903cddcdf5e", "name": "Commented-code block (6 lines) in public/sw.js:66", "shortDescription": {"text": "Commented-code block (6 lines) in public/sw.js:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/21285"}, "properties": {"repository": "tigraoimports-a11y/tigrao-tradein", "repoUrl": "https://github.com/tigraoimports-a11y/tigrao-tradein", "branch": "main"}, "results": [{"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-069d34dcd3c0554f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-all-ceps.ts:76"}, "properties": {"repobilityId": "5c198e586cf0b881", "scanner": "scanner-primary", "fingerprint": "069d34dcd3c0554f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-81de4a9106148bed", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/import-csv.ts:17"}, "properties": {"repobilityId": "48fc48e1155aed98", "scanner": "scanner-primary", "fingerprint": "81de4a9106148bed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-96cd0022c992e729", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/import-fev-2026.ts:71"}, "properties": {"repobilityId": "dba56b28c6a7b84f", "scanner": "scanner-primary", "fingerprint": "96cd0022c992e729", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e9f01e275a1f3210", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-march-cep.ts:49"}, "properties": {"repobilityId": "f82dc1f05189e637", "scanner": "scanner-primary", "fingerprint": "e9f01e275a1f3210", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8f0b4382b8805f43", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/populate-mostruario.ts:492"}, "properties": {"repobilityId": "33c5cdec3d677cf5", "scanner": "scanner-primary", "fingerprint": "8f0b4382b8805f43", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-873e1093afbbbb56", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/StepUsedDeviceMulti.tsx:1393"}, "properties": {"repobilityId": "1cd4128767fc73d3", "scanner": "scanner-primary", "fingerprint": "873e1093afbbbb56", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e7b4c1a1819a6ecd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/StepQuote.tsx:830"}, "properties": {"repobilityId": "eb9c2895e85bac8d", "scanner": "scanner-primary", "fingerprint": "e7b4c1a1819a6ecd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4bf856d112918cad", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 components/StepQuote.tsx:84"}, "properties": {"repobilityId": "e08f3b1b674b8583", "scanner": "scanner-primary", "fingerprint": "4bf856d112918cad", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f7c2a10c4dcf2358", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/StepManualHandoff.tsx:556"}, "properties": {"repobilityId": "0197e9d3b00a3e6b", "scanner": "scanner-primary", "fingerprint": "f7c2a10c4dcf2358", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a8e85678c762ee0d", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 components/admin/PrecoManualModal.tsx:128"}, "properties": {"repobilityId": "89e247622a40e402", "scanner": "scanner-primary", "fingerprint": "a8e85678c762ee0d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-cd5cbd36907987be", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 components/admin/BalancoSeminovosSection.tsx:341"}, "properties": {"repobilityId": "ca1b5996d5fd17bb", "scanner": "scanner-primary", "fingerprint": "cd5cbd36907987be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-4f714c9a27040223", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/TopSkusSection.tsx:156"}, "properties": {"repobilityId": "c0fa8236f242b389", "scanner": "scanner-primary", "fingerprint": "4f714c9a27040223", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c8ebacc5a0da0064", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/RotaOtimizadaModal.tsx:277"}, "properties": {"repobilityId": "32a475f449da6543", "scanner": "scanner-primary", "fingerprint": "c8ebacc5a0da0064", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b2c08aa8a2f62540", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 components/admin/SuperSearch.tsx:289"}, "properties": {"repobilityId": "8a2577977cd9e75c", "scanner": "scanner-primary", "fingerprint": "b2c08aa8a2f62540", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-5c055a1b7cae6a4b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/ChecklistColetaModal.tsx:118"}, "properties": {"repobilityId": "7357dbffd395eee7", "scanner": "scanner-primary", "fingerprint": "5c055a1b7cae6a4b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-054d7142d220bdce", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/AdminNav.tsx:68"}, "properties": {"repobilityId": "2986ecc2a0568d95", "scanner": "scanner-primary", "fingerprint": "054d7142d220bdce", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-74b27093375ae192", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 components/admin/SkuInfoModal.tsx:209"}, "properties": {"repobilityId": "48858914145779db", "scanner": "scanner-primary", "fingerprint": "74b27093375ae192", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-41fbf5c5a4e392e3", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 components/admin/BalancoPorCorModal.tsx:190"}, "properties": {"repobilityId": "52c09e2532772308", "scanner": "scanner-primary", "fingerprint": "41fbf5c5a4e392e3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-12665a9c81c26c82", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/admin/AdminShell.tsx:454"}, "properties": {"repobilityId": "b4a514b477d3bfd6", "scanner": "scanner-primary", "fingerprint": "12665a9c81c26c82", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d2ecbe671f07b6e0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/RotaDoDiaModal.tsx:104"}, "properties": {"repobilityId": "41cb27c57e3f935f", "scanner": "scanner-primary", "fingerprint": "d2ecbe671f07b6e0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6fa8505986c90417", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/EncomendasMensaisSection.tsx:196"}, "properties": {"repobilityId": "37e53eb847c03e57", "scanner": "scanner-primary", "fingerprint": "6fa8505986c90417", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c8c751f55a5744d9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/EntregadorView.tsx:418"}, "properties": {"repobilityId": "64260b5d82e30498", "scanner": "scanner-primary", "fingerprint": "c8c751f55a5744d9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-27ece00a264af3da", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 components/admin/ProdutoSpecFields.tsx:529"}, "properties": {"repobilityId": "128670b9288708b9", "scanner": "scanner-primary", "fingerprint": "27ece00a264af3da", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-6e3174a2148cf7f6", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 components/loja/TradeInWidget.tsx:205"}, "properties": {"repobilityId": "fe153ad8daae40c7", "scanner": "scanner-primary", "fingerprint": "6e3174a2148cf7f6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-49c9d8c88ba550a1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/loja/HeaderLoja.tsx:104"}, "properties": {"repobilityId": "99c5346fefe50572", "scanner": "scanner-primary", "fingerprint": "49c9d8c88ba550a1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2aa2c5a41bccb93e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:58"}, "properties": {"repobilityId": "6f16eb9b82a2dcd6", "scanner": "scanner-primary", "fingerprint": "2aa2c5a41bccb93e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1475de865c7dc679", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/leads/route.ts:26"}, "properties": {"repobilityId": "2c5b9f0e9e6095dd", "scanner": "scanner-primary", "fingerprint": "1475de865c7dc679", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e327bc8603feb6dc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/leads/exit-intent/route.ts:18"}, "properties": {"repobilityId": "4b38cc94a76fb7bb", "scanner": "scanner-primary", "fingerprint": "e327bc8603feb6dc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d3e1791b83436644", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhook/zapi-followup/route.ts:66"}, "properties": {"repobilityId": "9f755cb59799e66c", "scanner": "scanner-primary", "fingerprint": "d3e1791b83436644", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b9c55c3af3f389e3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/ia/route.ts:362"}, "properties": {"repobilityId": "cff209c021a6e44e", "scanner": "scanner-primary", "fingerprint": "b9c55c3af3f389e3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-665f3d6235dd50e5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/vendas/route.ts:1117"}, "properties": {"repobilityId": "29eee4277e45dcd5", "scanner": "scanner-primary", "fingerprint": "665f3d6235dd50e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-43a3d31a80c36871", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/vendas/from-formulario/route.ts:620"}, "properties": {"repobilityId": "6a9ac7b0f784c114", "scanner": "scanner-primary", "fingerprint": "43a3d31a80c36871", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a5ccb9b93ff02571", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/mp-webhook/route.ts:91"}, "properties": {"repobilityId": "053d679fbd8a1085", "scanner": "scanner-primary", "fingerprint": "a5ccb9b93ff02571", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-997fa4e4061d89e8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/backup-mensal/route.ts:179"}, "properties": {"repobilityId": "39d74d9f35edc8e6", "scanner": "scanner-primary", "fingerprint": "997fa4e4061d89e8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-873308d3ceae897c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/followup/route.ts:60"}, "properties": {"repobilityId": "57fcb1652497be0e", "scanner": "scanner-primary", "fingerprint": "873308d3ceae897c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c59011c6090c6c32", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/mostruario/route.ts:97"}, "properties": {"repobilityId": "59dd6c8b7abb68ca", "scanner": "scanner-primary", "fingerprint": "c59011c6090c6c32", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ca1a4f6a72cae529", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/cashback/processar-expiracoes/route.ts:27"}, "properties": {"repobilityId": "fe9e8e8e9b88d92f", "scanner": "scanner-primary", "fingerprint": "ca1a4f6a72cae529", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ed1cd034bde79fa1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/cashback/processar-liberacoes/route.ts:33"}, "properties": {"repobilityId": "95d3e3d20b9607da", "scanner": "scanner-primary", "fingerprint": "ed1cd034bde79fa1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7701609456d5b7cd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/precos/route.ts:193"}, "properties": {"repobilityId": "7475ae377f35fb19", "scanner": "scanner-primary", "fingerprint": "7701609456d5b7cd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c92386c13fe14a2b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/analytics-vendas/route.ts:202"}, "properties": {"repobilityId": "ac64c90243cc445b", "scanner": "scanner-primary", "fingerprint": "c92386c13fe14a2b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cd9842c8cb450ecb", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/admin/comissoes/route.ts:680"}, "properties": {"repobilityId": "64760e926629647e", "scanner": "scanner-primary", "fingerprint": "cd9842c8cb450ecb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7c8ce919cb5ef81e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/disparar-termos-pendentes/route.ts:82"}, "properties": {"repobilityId": "fbace74a5fc484bd", "scanner": "scanner-primary", "fingerprint": "7c8ce919cb5ef81e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ec22c0b045129a33", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/followup-simulacoes/route.ts:48"}, "properties": {"repobilityId": "88eaced059a860b9", "scanner": "scanner-primary", "fingerprint": "ec22c0b045129a33", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-22fc2fede4746434", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/alerta-preco/route.ts:57"}, "properties": {"repobilityId": "f7459126a169ea17", "scanner": "scanner-primary", "fingerprint": "22fc2fede4746434", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c44eb812cee3a0b8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/estoque/route.ts:838"}, "properties": {"repobilityId": "359411d223fbc034", "scanner": "scanner-primary", "fingerprint": "c44eb812cee3a0b8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-40b5bdc09ccc200a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/zapsign/route.ts:168"}, "properties": {"repobilityId": "ce1010f3741d41fa", "scanner": "scanner-primary", "fingerprint": "40b5bdc09ccc200a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-82d2985986f0563c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/link-compras/upload-print/route.ts:156"}, "properties": {"repobilityId": "7d3767460c8eec19", "scanner": "scanner-primary", "fingerprint": "82d2985986f0563c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-58bcf17fc84dcd25", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/c/[d]/page.tsx:201"}, "properties": {"repobilityId": "70fc3841e36bdddb", "scanner": "scanner-primary", "fingerprint": "58bcf17fc84dcd25", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-031194c6f2836f0b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/minhas-comissoes/page.tsx:537"}, "properties": {"repobilityId": "909371513d799e5c", "scanner": "scanner-primary", "fingerprint": "031194c6f2836f0b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2ba192aa8d149bb0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/catalogo/page.tsx:849"}, "properties": {"repobilityId": "eeeb36fbfee27fe1", "scanner": "scanner-primary", "fingerprint": "2ba192aa8d149bb0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6ef55a1208365c8b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/gastos/page.tsx:1658"}, "properties": {"repobilityId": "ae08c89cdd4b7592", "scanner": "scanner-primary", "fingerprint": "6ef55a1208365c8b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dac5484fe5da1ea6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/admin/clientes/page.tsx:1291"}, "properties": {"repobilityId": "06fec42ff899bdcd", "scanner": "scanner-primary", "fingerprint": "dac5484fe5da1ea6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0868b8ae8a67cf1f", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/admin/mostruario/page.tsx:418"}, "properties": {"repobilityId": "6d64b3ca57e20407", "scanner": "scanner-primary", "fingerprint": "0868b8ae8a67cf1f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-834653e79f1d8e97", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/mostruario/page.tsx:325"}, "properties": {"repobilityId": "52f5670f901f034e", "scanner": "scanner-primary", "fingerprint": "834653e79f1d8e97", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4ac1bc8be2beabfa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/admin/mostruario/page.tsx:300"}, "properties": {"repobilityId": "ce21a0ebcd858774", "scanner": "scanner-primary", "fingerprint": "4ac1bc8be2beabfa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-99a3933d47735f8c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/analytics/page.tsx:418"}, "properties": {"repobilityId": "ee85aeaf61cc36ee", "scanner": "scanner-primary", "fingerprint": "99a3933d47735f8c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-65ab38c1528fd514", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/admin/avaliacoes/page.tsx:296"}, "properties": {"repobilityId": "12e257bacc6bde76", "scanner": "scanner-primary", "fingerprint": "65ab38c1528fd514", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-86a47099d0e6edbe", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/admin/simulacoes/page.tsx:5871"}, "properties": {"repobilityId": "7054babbdfd30f59", "scanner": "scanner-primary", "fingerprint": "86a47099d0e6edbe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-15632cbedc03b991", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/simulacoes/page.tsx:501"}, "properties": {"repobilityId": "f5798a1d05a5c075", "scanner": "scanner-primary", "fingerprint": "15632cbedc03b991", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-525813c65bdf0d15", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/admin/vendas/page.tsx:4304"}, "properties": {"repobilityId": "c590912072274e90", "scanner": "scanner-primary", "fingerprint": "525813c65bdf0d15", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-6a10289013949869", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/vendas/page.tsx:5155"}, "properties": {"repobilityId": "93ecedb1ae713d64", "scanner": "scanner-primary", "fingerprint": "6a10289013949869", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8314975bc31e3bfb", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 app/admin/vendas/page.tsx:147"}, "properties": {"repobilityId": "22e4474546398fb8", "scanner": "scanner-primary", "fingerprint": "8314975bc31e3bfb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7b82a4e06c0c881b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/admin/vendas/page.tsx:8294"}, "properties": {"repobilityId": "d7d52f8183ac44e5", "scanner": "scanner-primary", "fingerprint": "7b82a4e06c0c881b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3f62c09b6ff34818", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/dashboard/page.tsx:1051"}, "properties": {"repobilityId": "bbd4c9f735a48669", "scanner": "scanner-primary", "fingerprint": "3f62c09b6ff34818", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dc63ca89178f34bd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/produtos-funcionarios/page.tsx:329"}, "properties": {"repobilityId": "18227e6e2cd42af8", "scanner": "scanner-primary", "fingerprint": "dc63ca89178f34bd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-35b17175a3430e81", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/conversas/page.tsx:540"}, "properties": {"repobilityId": "1cdd35bd0ea53dac", "scanner": "scanner-primary", "fingerprint": "35b17175a3430e81", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9b97a314181829ce", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/admin/encomendas/page.tsx:3243"}, "properties": {"repobilityId": "4501f2f0b9e33fc2", "scanner": "scanner-primary", "fingerprint": "9b97a314181829ce", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-a88a3a6694ed3844", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/gerar-link/page.tsx:5901"}, "properties": {"repobilityId": "0d6f552b99194ed9", "scanner": "scanner-primary", "fingerprint": "a88a3a6694ed3844", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-40eccc78eadbb912", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/admin/financeiro/dividas/page.tsx:427"}, "properties": {"repobilityId": "74c9cfa5bcd9112d", "scanner": "scanner-primary", "fingerprint": "40eccc78eadbb912", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-2f291f88016f0bc2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/financeiro/dividas/[id]/page.tsx:889"}, "properties": {"repobilityId": "72206a5edcd3a673", "scanner": "scanner-primary", "fingerprint": "2f291f88016f0bc2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-87e03a801953b1c1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/log/page.tsx:348"}, "properties": {"repobilityId": "53db276b20234e61", "scanner": "scanner-primary", "fingerprint": "87e03a801953b1c1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b6cc276e485f7655", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/admin/auditoria/page.tsx:2186"}, "properties": {"repobilityId": "8e980fc15644e54e", "scanner": "scanner-primary", "fingerprint": "b6cc276e485f7655", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-cec202b25f7293d1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/auditoria/page.tsx:1092"}, "properties": {"repobilityId": "bcc3b44c460334e1", "scanner": "scanner-primary", "fingerprint": "cec202b25f7293d1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-24dbe12f6d3d0afe", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/admin/orcamento/page.tsx:696"}, "properties": {"repobilityId": "ee15eb56c90acef7", "scanner": "scanner-primary", "fingerprint": "24dbe12f6d3d0afe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8a32dba15d907c50", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/admin/estoque/page.tsx:5053"}, "properties": {"repobilityId": "db17159e74ef7ced", "scanner": "scanner-primary", "fingerprint": "8a32dba15d907c50", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-b71a57a911a20c91", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/estoque/page.tsx:3631"}, "properties": {"repobilityId": "51aeba4ebc299d5e", "scanner": "scanner-primary", "fingerprint": "b71a57a911a20c91", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-df031f6986ece916", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/importar/page.tsx:489"}, "properties": {"repobilityId": "1659b9737517469a", "scanner": "scanner-primary", "fingerprint": "df031f6986ece916", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a6b5aeeb639927fa", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/analytics-vendas/page.tsx:862"}, "properties": {"repobilityId": "65bb9805fd26750b", "scanner": "scanner-primary", "fingerprint": "a6b5aeeb639927fa", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c18f0734263254e9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/mapa-vendas/page.tsx:266"}, "properties": {"repobilityId": "dcda732927b847f5", "scanner": "scanner-primary", "fingerprint": "c18f0734263254e9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-223e7a76f06e14d4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/migrations/page.tsx:176"}, "properties": {"repobilityId": "1d8a8c50c7898626", "scanner": "scanner-primary", "fingerprint": "223e7a76f06e14d4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0735cd0df3ae4be6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/comissoes/page.tsx:865"}, "properties": {"repobilityId": "b0a32ac18987d4f9", "scanner": "scanner-primary", "fingerprint": "0735cd0df3ae4be6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dae308d1b6fb1443", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/calculadora-taxas/page.tsx:648"}, "properties": {"repobilityId": "e75d7d94a9df75fb", "scanner": "scanner-primary", "fingerprint": "dae308d1b6fb1443", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-237bd4ca4566a401", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/produto/[slug]/page.tsx:392"}, "properties": {"repobilityId": "1821fd0a185feb8b", "scanner": "scanner-primary", "fingerprint": "237bd4ca4566a401", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-926b370e957bcb65", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/pagamento-confirmado/page.tsx:102"}, "properties": {"repobilityId": "fe6282f13687e250", "scanner": "scanner-primary", "fingerprint": "926b370e957bcb65", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b5855f591e6c586b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/sms.ts:122"}, "properties": {"repobilityId": "55c519b2dc676828", "scanner": "scanner-primary", "fingerprint": "b5855f591e6c586b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8dbe01ccd7c690e5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/infosimples.ts:81"}, "properties": {"repobilityId": "4ed96da66308f1ff", "scanner": "scanner-primary", "fingerprint": "8dbe01ccd7c690e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1935309c477eeb66", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/zapi.ts:67"}, "properties": {"repobilityId": "1395d438356cbc53", "scanner": "scanner-primary", "fingerprint": "1935309c477eeb66", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3c2e3a46a4af6da3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/contrato-auto.ts:204"}, "properties": {"repobilityId": "1b4c2fba608b61c4", "scanner": "scanner-primary", "fingerprint": "3c2e3a46a4af6da3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5767d80958aa40f1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in components/TradeInCalculatorMulti.tsx:784"}, "properties": {"repobilityId": "fd81bb8d4dbf436b", "scanner": "scanner-primary", "fingerprint": "5767d80958aa40f1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/TradeInCalculatorMulti.tsx"}, "region": {"startLine": 784}}}]}, {"ruleId": "scanner-e2db1c5d6f944c44", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/StepUsedDeviceMulti.tsx:1393"}, "properties": {"repobilityId": "b2ff8f77c088fb0b", "scanner": "scanner-primary", "fingerprint": "e2db1c5d6f944c44", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/StepUsedDeviceMulti.tsx"}, "region": {"startLine": 1393}}}]}, {"ruleId": "scanner-0cc5b3af38327a73", "level": "note", "message": {"text": "Insecure pattern 'document_write' in components/admin/SuperSearch.tsx:52"}, "properties": {"repobilityId": "d918ea6535e363fe", "scanner": "scanner-primary", "fingerprint": "0cc5b3af38327a73", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/admin/SuperSearch.tsx"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-52103ed86068e99b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/admin/AdminShell.tsx:454"}, "properties": {"repobilityId": "3cbeae3ba82bd272", "scanner": "scanner-primary", "fingerprint": "52103ed86068e99b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/admin/AdminShell.tsx"}, "region": {"startLine": 454}}}]}, {"ruleId": "scanner-adf10c3979107026", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:58"}, "properties": {"repobilityId": "69d4743587f721a0", "scanner": "scanner-primary", "fingerprint": "adf10c3979107026", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/layout.tsx"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-d2984372531d0253", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/c/[d]/page.tsx:201"}, "properties": {"repobilityId": "2e8e6ebb5d2a8eca", "scanner": "scanner-primary", "fingerprint": "d2984372531d0253", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/c/[d]/page.tsx"}, "region": {"startLine": 201}}}]}, {"ruleId": "scanner-b536c35b0c23b4f8", "level": "note", "message": {"text": "Insecure pattern 'document_write' in app/admin/impressao-produtos/page.tsx:282"}, "properties": {"repobilityId": "2233b93883309a25", "scanner": "scanner-primary", "fingerprint": "b536c35b0c23b4f8", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/admin/impressao-produtos/page.tsx"}, "region": {"startLine": 282}}}]}, {"ruleId": "scanner-d3f5b9f603eef86c", "level": "note", "message": {"text": "Insecure pattern 'document_write' in app/admin/operacoes/page.tsx:262"}, "properties": {"repobilityId": "2b3a2c1916290ffc", "scanner": "scanner-primary", "fingerprint": "d3f5b9f603eef86c", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/admin/operacoes/page.tsx"}, "region": {"startLine": 262}}}]}, {"ruleId": "scanner-d77eb70298fe099f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/admin/simulacoes/page.tsx:4581"}, "properties": {"repobilityId": "8de89b17b21dce06", "scanner": "scanner-primary", "fingerprint": "d77eb70298fe099f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/admin/simulacoes/page.tsx"}, "region": {"startLine": 4581}}}]}, {"ruleId": "scanner-f4abce8b134f3363", "level": "error", "message": {"text": "Possible secret in app/admin/vendas/page.tsx"}, "properties": {"repobilityId": "b94c61048e94b540", "scanner": "scanner-primary", "fingerprint": "f4abce8b134f3363", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/admin/vendas/page.tsx"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-4041430c6b63aa74", "level": "note", "message": {"text": "Insecure pattern 'document_write' in app/admin/etiquetas/page.tsx:270"}, "properties": {"repobilityId": "f8a6970ddf6bd572", "scanner": "scanner-primary", "fingerprint": "4041430c6b63aa74", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/admin/etiquetas/page.tsx"}, "region": {"startLine": 270}}}]}, {"ruleId": "scanner-96c283acc1640508", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/admin/etiquetas/page.tsx:206"}, "properties": {"repobilityId": "4ccfbd3c715cccfa", "scanner": "scanner-primary", "fingerprint": "96c283acc1640508", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/admin/etiquetas/page.tsx"}, "region": {"startLine": 206}}}]}, {"ruleId": "scanner-4553c707c8414f1c", "level": "note", "message": {"text": "Insecure pattern 'document_write' in app/admin/etiquetas-preco/page.tsx:294"}, "properties": {"repobilityId": "6dfc2bd630694deb", "scanner": "scanner-primary", "fingerprint": "4553c707c8414f1c", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/admin/etiquetas-preco/page.tsx"}, "region": {"startLine": 294}}}]}, {"ruleId": "scanner-3dd62a60fdeadead", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in app/admin/etiquetas-preco/page.tsx:290"}, "properties": {"repobilityId": "eb2c93ed52626ffc", "scanner": "scanner-primary", "fingerprint": "3dd62a60fdeadead", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/admin/etiquetas-preco/page.tsx"}, "region": {"startLine": 290}}}]}, {"ruleId": "scanner-9484181296575783", "level": "note", "message": {"text": "Insecure pattern 'document_write' in app/admin/estoque/page.tsx:2782"}, "properties": {"repobilityId": "2b3e064ccfef59f1", "scanner": "scanner-primary", "fingerprint": "9484181296575783", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/admin/estoque/page.tsx"}, "region": {"startLine": 2782}}}]}, {"ruleId": "scanner-ad1a0e949081a1cf", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/pagamento-confirmado/page.tsx:102"}, "properties": {"repobilityId": "6a39175610b8629f", "scanner": "scanner-primary", "fingerprint": "ad1a0e949081a1cf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/pagamento-confirmado/page.tsx"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-fd742979504b4008", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in lib/useTradeInAnalytics.ts:11"}, "properties": {"repobilityId": "1a57b0464a935c3d", "scanner": "scanner-primary", "fingerprint": "fd742979504b4008", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/useTradeInAnalytics.ts"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-e7acc1204e117c56", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "461e5c50ebfdf2cf", "scanner": "scanner-primary", "fingerprint": "e7acc1204e117c56", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/mirror-gitlab.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-1a53932526bb9bc4", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7077050e1dc5bc8a", "scanner": "scanner-primary", "fingerprint": "1a53932526bb9bc4", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/backup-supabase.yml"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-1a53932526bb9bc4", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "cad1c528652ed6d3", "scanner": "scanner-primary", "fingerprint": "1a53932526bb9bc4", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/backup-supabase.yml"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-a16c0836b547f24e", "level": "note", "message": {"text": "Very large file: create_docs.py (1836 lines)"}, "properties": {"repobilityId": "dc4774d242d9ffb2", "scanner": "scanner-primary", "fingerprint": "a16c0836b547f24e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f9932b3ef20ed043", "level": "note", "message": {"text": "Very large file: components/TradeInCalculatorMulti.tsx (1352 lines)"}, "properties": {"repobilityId": "708eff1e0f65f1e2", "scanner": "scanner-primary", "fingerprint": "f9932b3ef20ed043", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-76e293773ab18a93", "level": "note", "message": {"text": "Very large file: components/StepUsedDeviceMulti.tsx (1860 lines)"}, "properties": {"repobilityId": "df79ab375ea1c99c", "scanner": "scanner-primary", "fingerprint": "76e293773ab18a93", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9d0572098a15e026", "level": "note", "message": {"text": "Very large file: components/StepQuote.tsx (1492 lines)"}, "properties": {"repobilityId": "09b92447c83c705f", "scanner": "scanner-primary", "fingerprint": "9d0572098a15e026", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2f8ab5cdf02efdcc", "level": "note", "message": {"text": "Very large file: components/admin/TradeInQuestionsAdmin.tsx (1253 lines)"}, "properties": {"repobilityId": "e6135baa3242de1a", "scanner": "scanner-primary", "fingerprint": "2f8ab5cdf02efdcc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c6c1b11a5f1116e5", "level": "note", "message": {"text": "Very large file: components/admin/SuperSearch.tsx (1836 lines)"}, "properties": {"repobilityId": "1cf1c5fec07417e7", "scanner": "scanner-primary", "fingerprint": "c6c1b11a5f1116e5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-80cf912d03dedd7a", "level": "note", "message": {"text": "Very large file: components/admin/ProdutoSpecFields.tsx (1281 lines)"}, "properties": {"repobilityId": "ffa5266fd4b719d7", "scanner": "scanner-primary", "fingerprint": "80cf912d03dedd7a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-53a96496a786273a", "level": "note", "message": {"text": "Very large file: app/api/vendas/route.ts (2631 lines)"}, "properties": {"repobilityId": "600d8be1a8cb8021", "scanner": "scanner-primary", "fingerprint": "53a96496a786273a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6af640c713598cad", "level": "note", "message": {"text": "Very large file: app/api/telegram/webhook/route.ts (1576 lines)"}, "properties": {"repobilityId": "d7c31f618e7030da", "scanner": "scanner-primary", "fingerprint": "6af640c713598cad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1352720abda60e28", "level": "note", "message": {"text": "Very large file: app/api/admin/comissoes/route.ts (1346 lines)"}, "properties": {"repobilityId": "89fda82a2b4819a8", "scanner": "scanner-primary", "fingerprint": "1352720abda60e28", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-99750ab06d5ee546", "level": "note", "message": {"text": "Very large file: app/compra/page.tsx (3454 lines)"}, "properties": {"repobilityId": "19ee6a7409bef9e4", "scanner": "scanner-primary", "fingerprint": "99750ab06d5ee546", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fa551595e2278e7e", "level": "note", "message": {"text": "Very large file: app/admin/catalogo/page.tsx (1643 lines)"}, "properties": {"repobilityId": "29ff2f0140d22e6f", "scanner": "scanner-primary", "fingerprint": "fa551595e2278e7e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d50427a87ba0c2af", "level": "note", "message": {"text": "Very large file: app/admin/gastos/page.tsx (1857 lines)"}, "properties": {"repobilityId": "c443720a87e6b27a", "scanner": "scanner-primary", "fingerprint": "d50427a87ba0c2af", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea6f84e39dbf8892", "level": "note", "message": {"text": "Very large file: app/admin/clientes/page.tsx (2154 lines)"}, "properties": {"repobilityId": "0d4c79456a3539fc", "scanner": "scanner-primary", "fingerprint": "ea6f84e39dbf8892", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d3818370d08f5419", "level": "note", "message": {"text": "Very large file: app/admin/mostruario/page.tsx (1390 lines)"}, "properties": {"repobilityId": "0a2ba9dac5c6ef24", "scanner": "scanner-primary", "fingerprint": "d3818370d08f5419", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4e21ee88af866a3d", "level": "note", "message": {"text": "Very large file: app/admin/simulacoes/page.tsx (6144 lines)"}, "properties": {"repobilityId": "a84c4ceeabca375c", "scanner": "scanner-primary", "fingerprint": "4e21ee88af866a3d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e011a24693f20e1d", "level": "note", "message": {"text": "Very large file: app/admin/vendas/page.tsx (11984 lines)"}, "properties": {"repobilityId": "0a8abdab6899983d", "scanner": "scanner-primary", "fingerprint": "e011a24693f20e1d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d4b7ac90eccadbb5", "level": "note", "message": {"text": "Very large file: app/admin/dashboard/page.tsx (1409 lines)"}, "properties": {"repobilityId": "611dc0016c746893", "scanner": "scanner-primary", "fingerprint": "d4b7ac90eccadbb5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a10d6e873b0d7c17", "level": "note", "message": {"text": "Very large file: app/admin/produtos-funcionarios/page.tsx (1294 lines)"}, "properties": {"repobilityId": "f54f37074b08f6dd", "scanner": "scanner-primary", "fingerprint": "a10d6e873b0d7c17", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-372c5996ea647ace", "level": "note", "message": {"text": "Very large file: app/admin/cashback/page.tsx (1289 lines)"}, "properties": {"repobilityId": "2f0b75ac9a325aa4", "scanner": "scanner-primary", "fingerprint": "372c5996ea647ace", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-88c3492330e3cf59", "level": "note", "message": {"text": "Very large file: app/admin/encomendas/page.tsx (3480 lines)"}, "properties": {"repobilityId": "69eb072090fa68e3", "scanner": "scanner-primary", "fingerprint": "88c3492330e3cf59", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7e8fb2a9dc55f5e7", "level": "note", "message": {"text": "Very large file: app/admin/gerar-link/page.tsx (6002 lines)"}, "properties": {"repobilityId": "85afcae7aaf5440e", "scanner": "scanner-primary", "fingerprint": "7e8fb2a9dc55f5e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-46ade9966ef82508", "level": "note", "message": {"text": "Very large file: app/admin/etiquetas/page.tsx (1251 lines)"}, "properties": {"repobilityId": "27b078a7fa8a9972", "scanner": "scanner-primary", "fingerprint": "46ade9966ef82508", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b3a0dc22faf738aa", "level": "note", "message": {"text": "Very large file: app/admin/precos/page.tsx (2077 lines)"}, "properties": {"repobilityId": "c298d6396e30114e", "scanner": "scanner-primary", "fingerprint": "b3a0dc22faf738aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d5ee6e1944607320", "level": "note", "message": {"text": "Very large file: app/admin/financeiro/dividas/[id]/page.tsx (2569 lines)"}, "properties": {"repobilityId": "afa8fb14cea2cab2", "scanner": "scanner-primary", "fingerprint": "d5ee6e1944607320", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-83397f59346d22e5", "level": "note", "message": {"text": "Very large file: app/admin/auditoria/page.tsx (2443 lines)"}, "properties": {"repobilityId": "94582d5a6c798ad4", "scanner": "scanner-primary", "fingerprint": "83397f59346d22e5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-badc89cf64285403", "level": "note", "message": {"text": "Very large file: app/admin/orcamento/page.tsx (1694 lines)"}, "properties": {"repobilityId": "991d2eda74f43fad", "scanner": "scanner-primary", "fingerprint": "badc89cf64285403", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-efab6d6e0441f51d", "level": "note", "message": {"text": "Very large file: app/admin/usados/page.tsx (2324 lines)"}, "properties": {"repobilityId": "31f7ca0e834761a9", "scanner": "scanner-primary", "fingerprint": "efab6d6e0441f51d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4f46471b0cc0207a", "level": "note", "message": {"text": "Very large file: app/admin/estoque/page.tsx (10123 lines)"}, "properties": {"repobilityId": "4e6ba2fd56cdc501", "scanner": "scanner-primary", "fingerprint": "4f46471b0cc0207a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c9d5634309813b8c", "level": "note", "message": {"text": "Very large file: app/admin/instagram/[id]/page.tsx (1169 lines)"}, "properties": {"repobilityId": "2fdc20f83e053fb6", "scanner": "scanner-primary", "fingerprint": "c9d5634309813b8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fd550cc6ba904747", "level": "note", "message": {"text": "Very large file: app/admin/comissoes/page.tsx (1321 lines)"}, "properties": {"repobilityId": "3c8f7ca88bbdd78e", "scanner": "scanner-primary", "fingerprint": "fd550cc6ba904747", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7ef067a75fcccaba", "level": "note", "message": {"text": "Very large file: app/admin/entregas/page.tsx (5403 lines)"}, "properties": {"repobilityId": "cbd626ca4985708f", "scanner": "scanner-primary", "fingerprint": "7ef067a75fcccaba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4e71d9153c09d6f4", "level": "note", "message": {"text": "Very large file: lib/pdf-report.ts (1311 lines)"}, "properties": {"repobilityId": "a2062e8f8a384d69", "scanner": "scanner-primary", "fingerprint": "4e71d9153c09d6f4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-00228f02bee34e99", "level": "note", "message": {"text": "Very large file: lib/mcp-tools.ts (1746 lines)"}, "properties": {"repobilityId": "a85ef3b94a46aee3", "scanner": "scanner-primary", "fingerprint": "00228f02bee34e99", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-25563efdd6767c04", "level": "note", "message": {"text": "78 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "25563efdd6767c04", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "971eef0f14fe7e34", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "b1e107ef38334006", "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": "b8897a21c2fe9551", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "88b82c2a071f3bc4", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "8aa0e6a9d57c5f0a", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "54c850b95acdae07", "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": "832c8f13cf00b3aa", "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": "334161d7dbc0429b", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-a361fe9413945115", "level": "note", "message": {"text": "Legacy-named symbol `calc_minimos_v2` in scripts/calc_minimos_v2.mjs:221"}, "properties": {"repobilityId": "dc5626642f107c1b", "scanner": "scanner-primary", "fingerprint": "a361fe9413945115", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-512109eb6d438673", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/test-multi-troca-e2e.mjs:12"}, "properties": {"repobilityId": "af662aebd07f9ce8", "scanner": "scanner-primary", "fingerprint": "512109eb6d438673", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6accbea03e80f47c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/insert-acaminho-pendencias.mjs:39"}, "properties": {"repobilityId": "61c2895f5240d96e", "scanner": "scanner-primary", "fingerprint": "6accbea03e80f47c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b91274d5d33172a7", "level": "none", "message": {"text": "Commented-code block (11 lines) in scripts/test-comissoes-paloma.mjs:3"}, "properties": {"repobilityId": "273002c98fe77523", "scanner": "scanner-primary", "fingerprint": "b91274d5d33172a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f39980fd1646c63d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/populate-mostruario.ts:13"}, "properties": {"repobilityId": "248d9d4e708a3dac", "scanner": "scanner-primary", "fingerprint": "f39980fd1646c63d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7f9b7a6dfd3e4177", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/BeneficiosSalto.tsx:13"}, "properties": {"repobilityId": "60cd669075838b8e", "scanner": "scanner-primary", "fingerprint": "7f9b7a6dfd3e4177", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3799ae34f63534f1", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/FlexiblePaymentSimulator.tsx:120"}, "properties": {"repobilityId": "5d04af88e7420555", "scanner": "scanner-primary", "fingerprint": "3799ae34f63534f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-987bb771f255f022", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/PerfilBanner.tsx:31"}, "properties": {"repobilityId": "d9061216c04d1b67", "scanner": "scanner-primary", "fingerprint": "987bb771f255f022", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa1a11efaa068599", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/PerfilBanner.tsx:72"}, "properties": {"repobilityId": "1c066c84e2c0df48", "scanner": "scanner-primary", "fingerprint": "fa1a11efaa068599", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cd3b3f95f21c8114", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/StepClientData.tsx:16"}, "properties": {"repobilityId": "b35cb09ad5bcd06f", "scanner": "scanner-primary", "fingerprint": "cd3b3f95f21c8114", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9025e226bed9d8c", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/TradeInCalculatorMulti.tsx:77"}, "properties": {"repobilityId": "e0c1a8aeb9cbcc7e", "scanner": "scanner-primary", "fingerprint": "e9025e226bed9d8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e7b05335e67be76", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/StepUsedDeviceMulti.tsx:31"}, "properties": {"repobilityId": "f1c3778e8de64c28", "scanner": "scanner-primary", "fingerprint": "5e7b05335e67be76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a1ee6490b385774", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/UpgradeLogico.tsx:15"}, "properties": {"repobilityId": "660e8f936626e5b2", "scanner": "scanner-primary", "fingerprint": "1a1ee6490b385774", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d78afa8100560f8d", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/StepQuote.tsx:191"}, "properties": {"repobilityId": "da851b9d87dd81a3", "scanner": "scanner-primary", "fingerprint": "d78afa8100560f8d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6bf5e3fb404b4958", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/StepManualHandoff.tsx:47"}, "properties": {"repobilityId": "e944947dec653e7a", "scanner": "scanner-primary", "fingerprint": "6bf5e3fb404b4958", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71e9627ce3d24dee", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/StepManualHandoff.tsx:401"}, "properties": {"repobilityId": "2b33de5b89e5d35c", "scanner": "scanner-primary", "fingerprint": "71e9627ce3d24dee", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a8c6c03e448a9b71", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/StepAccessoryUsed.tsx:8"}, "properties": {"repobilityId": "ddacf698dd595a3b", "scanner": "scanner-primary", "fingerprint": "a8c6c03e448a9b71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f3bba910d00d8f7", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/StepNewDevice.tsx:172"}, "properties": {"repobilityId": "683596fa91e34054", "scanner": "scanner-primary", "fingerprint": "3f3bba910d00d8f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29dc240b7cdf8549", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/StepNewDevice.tsx:656"}, "properties": {"repobilityId": "a5118ef475c7240d", "scanner": "scanner-primary", "fingerprint": "29dc240b7cdf8549", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8e88bd821fae300f", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/TradeInQuestionsAdmin.tsx:145"}, "properties": {"repobilityId": "29141318fb50cf1b", "scanner": "scanner-primary", "fingerprint": "8e88bd821fae300f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9541c92dc753e168", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/TradeInQuestionsAdmin.tsx:74"}, "properties": {"repobilityId": "150b81a46aca28fb", "scanner": "scanner-primary", "fingerprint": "9541c92dc753e168", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-91617859cf6683d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/ComissoesPhase2Card.tsx:144"}, "properties": {"repobilityId": "c852f8702a87475a", "scanner": "scanner-primary", "fingerprint": "91617859cf6683d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e532f68b1e39c62", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/PrecoManualModal.tsx:67"}, "properties": {"repobilityId": "45ab40e73964dcfe", "scanner": "scanner-primary", "fingerprint": "1e532f68b1e39c62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8628f06008c48d3", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/admin/AcessoriosPrecos.tsx:5"}, "properties": {"repobilityId": "f062fc96ad9f99e2", "scanner": "scanner-primary", "fingerprint": "e8628f06008c48d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31d5ecb0dcfa3213", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/AcessoriosPrecos.tsx:122"}, "properties": {"repobilityId": "bb375061dc2bc741", "scanner": "scanner-primary", "fingerprint": "31d5ecb0dcfa3213", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d6e6e2397391d8cb", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/CanalSimuladorCard.tsx:5"}, "properties": {"repobilityId": "7df09d45cbfc2437", "scanner": "scanner-primary", "fingerprint": "d6e6e2397391d8cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-befac1977ce0e612", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/SkuFilterBanner.tsx:1"}, "properties": {"repobilityId": "9ee4ab20785919de", "scanner": "scanner-primary", "fingerprint": "befac1977ce0e612", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-340b1c7c9d8aa6db", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/admin/CashbackInput.tsx:5"}, "properties": {"repobilityId": "50be70c84e747676", "scanner": "scanner-primary", "fingerprint": "340b1c7c9d8aa6db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fdc59f206291c658", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/produto-spec-row.ts:1"}, "properties": {"repobilityId": "568c8c00058c372f", "scanner": "scanner-primary", "fingerprint": "fdc59f206291c658", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3ac75a92608db74", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/admin/ChecklistTradeInModal.tsx:5"}, "properties": {"repobilityId": "29db17479b59b427", "scanner": "scanner-primary", "fingerprint": "b3ac75a92608db74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3353f156e4f69111", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/admin/SerialHistoryAlert.tsx:9"}, "properties": {"repobilityId": "8972969c288deea5", "scanner": "scanner-primary", "fingerprint": "3353f156e4f69111", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-809e0a53b73a0ad9", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/admin/SuperSearch.tsx:9"}, "properties": {"repobilityId": "50e6cf25421ed5a5", "scanner": "scanner-primary", "fingerprint": "809e0a53b73a0ad9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e718ee5e46ea73af", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/SuperSearch.tsx:985"}, "properties": {"repobilityId": "b7573ee9353eb47c", "scanner": "scanner-primary", "fingerprint": "e718ee5e46ea73af", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-911b265d3a94f912", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/PecasTrocadasConfig.tsx:49"}, "properties": {"repobilityId": "5fda4502266f4330", "scanner": "scanner-primary", "fingerprint": "911b265d3a94f912", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dabbae5c40d6769d", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/admin/AdicionarProdutoEncomendaModal.tsx:9"}, "properties": {"repobilityId": "9db21305efa6a0c6", "scanner": "scanner-primary", "fingerprint": "dabbae5c40d6769d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e3754fd8d1b4d89", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/FolhaSalarialCard.tsx:10"}, "properties": {"repobilityId": "828d89fa24efd7fa", "scanner": "scanner-primary", "fingerprint": "2e3754fd8d1b4d89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61a86bc37be9f2d8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/FolhaSalarialCard.tsx:92"}, "properties": {"repobilityId": "4f682a35ee817f36", "scanner": "scanner-primary", "fingerprint": "61a86bc37be9f2d8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6eade8c359468b26", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/BalancoPorCorModal.tsx:137"}, "properties": {"repobilityId": "6cdf45a2320ec8f0", "scanner": "scanner-primary", "fingerprint": "6eade8c359468b26", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-28fc0c36636e65b8", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/AdminShell.tsx:71"}, "properties": {"repobilityId": "dae855e5b6b2af47", "scanner": "scanner-primary", "fingerprint": "28fc0c36636e65b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8486b440d547d216", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/AdminShell.tsx:108"}, "properties": {"repobilityId": "2546270e98b9d05e", "scanner": "scanner-primary", "fingerprint": "8486b440d547d216", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0054c3789e2df024", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/admin/EncomendasPendentesList.tsx:35"}, "properties": {"repobilityId": "1ebe12f289231a0e", "scanner": "scanner-primary", "fingerprint": "0054c3789e2df024", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-626b80c44f497158", "level": "none", "message": {"text": "Commented-code block (8 lines) in components/admin/EncomendasMensaisSection.tsx:90"}, "properties": {"repobilityId": "2acaece8d3826b39", "scanner": "scanner-primary", "fingerprint": "626b80c44f497158", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ea8fa2f81f781f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/JanelaPremiumBadge.tsx:9"}, "properties": {"repobilityId": "981a2f0d49e945a6", "scanner": "scanner-primary", "fingerprint": "9ea8fa2f81f781f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1dd29e259ddcf204", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/EncomendasFinalizadasList.tsx:6"}, "properties": {"repobilityId": "1ebb999f1e8f3e7f", "scanner": "scanner-primary", "fingerprint": "1dd29e259ddcf204", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e44ca0db3112ff9", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/admin/EntregadorView.tsx:673"}, "properties": {"repobilityId": "f363fe56fe0d25d0", "scanner": "scanner-primary", "fingerprint": "6e44ca0db3112ff9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fed526b8ec09202", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/ProdutoSpecFields.tsx:175"}, "properties": {"repobilityId": "3b72d32f676f8dfe", "scanner": "scanner-primary", "fingerprint": "4fed526b8ec09202", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0f9f5e7d049c166", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/ProdutoSpecFields.tsx:345"}, "properties": {"repobilityId": "67b0a3cc8108cfad", "scanner": "scanner-primary", "fingerprint": "b0f9f5e7d049c166", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-778dd1c864433f54", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/loja/ClienteProvider.tsx:6"}, "properties": {"repobilityId": "86f8ac46a1391e36", "scanner": "scanner-primary", "fingerprint": "778dd1c864433f54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ad914729ba1c0ee", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/loja/ConfiguratorProduto.tsx:8"}, "properties": {"repobilityId": "2552918a1a6900a2", "scanner": "scanner-primary", "fingerprint": "7ad914729ba1c0ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9cb8304ba19819c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/loja/AvaliacoesProduto.tsx:5"}, "properties": {"repobilityId": "cfa4da65307e809c", "scanner": "scanner-primary", "fingerprint": "9cb8304ba19819c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7621cc5adeeb95a", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/loja/TradeInWidget.tsx:7"}, "properties": {"repobilityId": "374462bfde56637a", "scanner": "scanner-primary", "fingerprint": "a7621cc5adeeb95a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf64eb89b8105c98", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/loja/ProdutoView.tsx:10"}, "properties": {"repobilityId": "8f629c7273c66fb1", "scanner": "scanner-primary", "fingerprint": "bf64eb89b8105c98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-800f506d32e8dfea", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/duvidas/ModalDuvidas.tsx:8"}, "properties": {"repobilityId": "9b9e67e53524e525", "scanner": "scanner-primary", "fingerprint": "800f506d32e8dfea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a641173aefc0d8f6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/duvidas/ModalDuvidas.tsx:120"}, "properties": {"repobilityId": "71103b4e263d2a6d", "scanner": "scanner-primary", "fingerprint": "a641173aefc0d8f6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d5588d21dbe80edf", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/duvidas/BotaoDuvidas.tsx:8"}, "properties": {"repobilityId": "dd68f78aabc124f5", "scanner": "scanner-primary", "fingerprint": "d5588d21dbe80edf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac661797e8af1413", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/page.tsx:160"}, "properties": {"repobilityId": "a066766d28d46708", "scanner": "scanner-primary", "fingerprint": "ac661797e8af1413", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fabedf6d00276889", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/catalogo/page.tsx:15"}, "properties": {"repobilityId": "76cf24e169d35c67", "scanner": "scanner-primary", "fingerprint": "fabedf6d00276889", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-abc50212ed39a576", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/create-mp-from-form/route.ts:5"}, "properties": {"repobilityId": "38099c4b5cb05ea2", "scanner": "scanner-primary", "fingerprint": "abc50212ed39a576", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e38d35e34075144", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/entregador/entregas/route.ts:55"}, "properties": {"repobilityId": "37400c4d4a0a6d55", "scanner": "scanner-primary", "fingerprint": "8e38d35e34075144", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7a2a89b461850f0", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/entregador/rota/route.ts:7"}, "properties": {"repobilityId": "9932dd828bbbb377", "scanner": "scanner-primary", "fingerprint": "e7a2a89b461850f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dcaced5a788fdf34", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/leads/route.ts:11"}, "properties": {"repobilityId": "6abbdd5ea4679dcf", "scanner": "scanner-primary", "fingerprint": "dcaced5a788fdf34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a38e1c2bd7f5c0f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/webhook/zapi-inbox/route.ts:1"}, "properties": {"repobilityId": "898ffb09205186c4", "scanner": "scanner-primary", "fingerprint": "1a38e1c2bd7f5c0f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d744492fe21bb3f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/webhook/sms-optout/route.ts:11"}, "properties": {"repobilityId": "8c8f1c2c8bcee9cc", "scanner": "scanner-primary", "fingerprint": "0d744492fe21bb3f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5294da99325e19b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/mcp/route.ts:20"}, "properties": {"repobilityId": "1ea2747a7a0c7024", "scanner": "scanner-primary", "fingerprint": "d5294da99325e19b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db009b641e000932", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/vendas/route.ts:19"}, "properties": {"repobilityId": "19ed4840a0eb5482", "scanner": "scanner-primary", "fingerprint": "db009b641e000932", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68dab011e7b1d492", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/vendas/devolver-caucao/route.ts:8"}, "properties": {"repobilityId": "de4e35a48c1d7e72", "scanner": "scanner-primary", "fingerprint": "68dab011e7b1d492", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db504c779ee5728f", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/api/vendas/gerar-contrato-auto/route.ts:6"}, "properties": {"repobilityId": "6883302ec3b69e8d", "scanner": "scanner-primary", "fingerprint": "db504c779ee5728f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b3898a0a274e363", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/vendas/from-formulario/route.ts:14"}, "properties": {"repobilityId": "0d4b26da81b6d21d", "scanner": "scanner-primary", "fingerprint": "2b3898a0a274e363", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1acf365ef74ef325", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/funnel/route.ts:220"}, "properties": {"repobilityId": "62eb04e42aa8a983", "scanner": "scanner-primary", "fingerprint": "1acf365ef74ef325", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06af114abdff359d", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/funnel/avaliacao-media/route.ts:16"}, "properties": {"repobilityId": "cab039314245f4d9", "scanner": "scanner-primary", "fingerprint": "06af114abdff359d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c724cb31b1dd4ccb", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/funnel/perfil-pessoa/route.ts:19"}, "properties": {"repobilityId": "b642ded71c7db9db", "scanner": "scanner-primary", "fingerprint": "c724cb31b1dd4ccb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80edd3576af08e90", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/funnel/perfis/route.ts:11"}, "properties": {"repobilityId": "c67603e3cebf694c", "scanner": "scanner-primary", "fingerprint": "80edd3576af08e90", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-710900a5d32dd624", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/saldos/route.ts:39"}, "properties": {"repobilityId": "443ae070dbd30c2c", "scanner": "scanner-primary", "fingerprint": "710900a5d32dd624", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ede36326ff29e6f", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/termo/[id]/wa-redirect/route.ts:4"}, "properties": {"repobilityId": "bc53a5c9e11727f1", "scanner": "scanner-primary", "fingerprint": "2ede36326ff29e6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58c77b2440dd10d3", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/encomendas/route.ts:81"}, "properties": {"repobilityId": "3f196fedf11eda1d", "scanner": "scanner-primary", "fingerprint": "58c77b2440dd10d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68a0490c094a8780", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/mp-webhook/route.ts:3"}, "properties": {"repobilityId": "8520b2f310eaae05", "scanner": "scanner-primary", "fingerprint": "68a0490c094a8780", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a59f4b056537c1a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/campanhas-sms/route.ts:8"}, "properties": {"repobilityId": "c191f5ff755a0331", "scanner": "scanner-primary", "fingerprint": "6a59f4b056537c1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb3e3615c285521a", "level": "none", "message": {"text": "Commented-code block (12 lines) in app/api/admin/promo-enviada/route.ts:4"}, "properties": {"repobilityId": "a380ae0d840a9c0e", "scanner": "scanner-primary", "fingerprint": "fb3e3615c285521a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d4be675aa3ab164", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/admin/catalogo/route.ts:21"}, "properties": {"repobilityId": "101cbe39d88f9242", "scanner": "scanner-primary", "fingerprint": "8d4be675aa3ab164", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7a97d69c6fcad20", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/clientes/route.ts:292"}, "properties": {"repobilityId": "a516d23381662b01", "scanner": "scanner-primary", "fingerprint": "f7a97d69c6fcad20", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3947476f84314cfe", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/clientes/rename/route.ts:4"}, "properties": {"repobilityId": "509a9d2da5f399c0", "scanner": "scanner-primary", "fingerprint": "3947476f84314cfe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8db552aa7408e935", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/clientes/lookup/route.ts:12"}, "properties": {"repobilityId": "e7857aec27170107", "scanner": "scanner-primary", "fingerprint": "8db552aa7408e935", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59a8ef4ed9f79022", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/admin/followup/route.ts:64"}, "properties": {"repobilityId": "135d7146eee4efee", "scanner": "scanner-primary", "fingerprint": "59a8ef4ed9f79022", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-639ac23e5a37c066", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/followup/route.ts:47"}, "properties": {"repobilityId": "36425e30a740beaf", "scanner": "scanner-primary", "fingerprint": "639ac23e5a37c066", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-146459d27ab7b671", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/admin/mostruario/upload/route.ts:9"}, "properties": {"repobilityId": "552dcc9ebfcd839b", "scanner": "scanner-primary", "fingerprint": "146459d27ab7b671", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8ca2b62022ca45f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/entregadores/route.ts:1"}, "properties": {"repobilityId": "7e4f279ca5c98092", "scanner": "scanner-primary", "fingerprint": "b8ca2b62022ca45f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81b240d3b54c72ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/sms-cupom/route.ts:9"}, "properties": {"repobilityId": "285d5e11b1d55a06", "scanner": "scanner-primary", "fingerprint": "81b240d3b54c72ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8e01034174840f7", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/validate-imei/route.ts:3"}, "properties": {"repobilityId": "92e51f086c375b8c", "scanner": "scanner-primary", "fingerprint": "f8e01034174840f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-854b837a01122e83", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/vendas/encaminhar-entrega/route.ts:216"}, "properties": {"repobilityId": "8e2938f82e326c18", "scanner": "scanner-primary", "fingerprint": "854b837a01122e83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d3cb87e4ffa41ad", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/admin/visao-entregador/route.ts:1"}, "properties": {"repobilityId": "3014b9bbbbafd134", "scanner": "scanner-primary", "fingerprint": "6d3cb87e4ffa41ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9e25f492019ea21", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/admin/sync-formularios-preenchidos/route.ts:4"}, "properties": {"repobilityId": "87c7552cce765620", "scanner": "scanner-primary", "fingerprint": "d9e25f492019ea21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aef1031cca494fde", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/conversas/route.ts:1"}, "properties": {"repobilityId": "6aeabdd0f722244b", "scanner": "scanner-primary", "fingerprint": "aef1031cca494fde", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60cab9f877a08cd8", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/admin/cashback/inspecionar-margem/route.ts:1"}, "properties": {"repobilityId": "de6e3311536d9481", "scanner": "scanner-primary", "fingerprint": "60cab9f877a08cd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a480d0dc4f7eb06", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/cashback/processar-expiracoes/route.ts:1"}, "properties": {"repobilityId": "a5f27c38f512a9fc", "scanner": "scanner-primary", "fingerprint": "3a480d0dc4f7eb06", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94dd9a39d87b7a96", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/cashback/processar-liberacoes/route.ts:1"}, "properties": {"repobilityId": "87755ca98e66198a", "scanner": "scanner-primary", "fingerprint": "94dd9a39d87b7a96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12fda8904594e441", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/admin/search/route.ts:29"}, "properties": {"repobilityId": "c44e3fc23c9db45d", "scanner": "scanner-primary", "fingerprint": "12fda8904594e441", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b32f2f689e94ba52", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/prejuizos/route.ts:5"}, "properties": {"repobilityId": "a65c5fbddd13f4ab", "scanner": "scanner-primary", "fingerprint": "b32f2f689e94ba52", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b4e3aaa8602bc50", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/precos/route.ts:157"}, "properties": {"repobilityId": "4e1afc1cbe8d7c91", "scanner": "scanner-primary", "fingerprint": "9b4e3aaa8602bc50", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3bff6cfce7806959", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/precos/route.ts:238"}, "properties": {"repobilityId": "3c981bed0c53f42d", "scanner": "scanner-primary", "fingerprint": "3bff6cfce7806959", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ca530e4b3958148f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/precos/debug-historico/route.ts:10"}, "properties": {"repobilityId": "089609c9de1ec144", "scanner": "scanner-primary", "fingerprint": "ca530e4b3958148f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6e15d2e5cd187a4", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/admin/mp-preference/route.ts:3"}, "properties": {"repobilityId": "4eb447d47b129fba", "scanner": "scanner-primary", "fingerprint": "f6e15d2e5cd187a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32bc38594e406322", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/sku/comprar-urgente/route.ts:13"}, "properties": {"repobilityId": "586da416fd40f07c", "scanner": "scanner-primary", "fingerprint": "32bc38594e406322", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1171c25c2bccf80a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/sku/info/route.ts:5"}, "properties": {"repobilityId": "d411e38ded9513d0", "scanner": "scanner-primary", "fingerprint": "1171c25c2bccf80a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3119463b37087da5", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/sku/cross-sell/route.ts:1"}, "properties": {"repobilityId": "8fe7495330d7fd19", "scanner": "scanner-primary", "fingerprint": "3119463b37087da5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f84268b0820192f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/sku/fix-cor/route.ts:1"}, "properties": {"repobilityId": "1d702376a08aba34", "scanner": "scanner-primary", "fingerprint": "4f84268b0820192f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f344f073e8e2d43", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/admin/sku/reconciliacao/route.ts:41"}, "properties": {"repobilityId": "4cfc91a465451ac9", "scanner": "scanner-primary", "fingerprint": "6f344f073e8e2d43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0db0b9e48ba50478", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/admin/enviar-sms/route.ts:5"}, "properties": {"repobilityId": "66676ff12528692f", "scanner": "scanner-primary", "fingerprint": "0db0b9e48ba50478", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48fa0fed7965fbb8", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/preco-manual/route.ts:161"}, "properties": {"repobilityId": "3957bb30529d4628", "scanner": "scanner-primary", "fingerprint": "48fa0fed7965fbb8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-699183b56acf14bb", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/admin/auditoria-semanal/route.ts:56"}, "properties": {"repobilityId": "d3f8b2346862a8ab", "scanner": "scanner-primary", "fingerprint": "699183b56acf14bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46ff54ddcd641647", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/admin/contatar/route.ts:4"}, "properties": {"repobilityId": "d441ea736c6b7b10", "scanner": "scanner-primary", "fingerprint": "46ff54ddcd641647", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2c9d390592a6298", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/balanco-por-cor/route.ts:12"}, "properties": {"repobilityId": "9b28f521c0b1937d", "scanner": "scanner-primary", "fingerprint": "e2c9d390592a6298", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26ef7c784f7fa61c", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/admin/auditoria/route.ts:68"}, "properties": {"repobilityId": "c130d87a13fee98b", "scanner": "scanner-primary", "fingerprint": "26ef7c784f7fa61c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ad6fafc2bb5f4f5", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/usados/route.ts:411"}, "properties": {"repobilityId": "8da0270b706f896e", "scanner": "scanner-primary", "fingerprint": "6ad6fafc2bb5f4f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71d96b7fe159f3a1", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/estoque/check-serial/route.ts:4"}, "properties": {"repobilityId": "a08c410a2470d96f", "scanner": "scanner-primary", "fingerprint": "71d96b7fe159f3a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4279e0bb2f65bf6", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/analytics-vendas/route.ts:73"}, "properties": {"repobilityId": "4e9370dc79e6e00f", "scanner": "scanner-primary", "fingerprint": "d4279e0bb2f65bf6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed3626db2ef42e28", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/admin/exportar/route.ts:42"}, "properties": {"repobilityId": "5b87a2ed5e92def7", "scanner": "scanner-primary", "fingerprint": "ed3626db2ef42e28", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76ae210bc69009d8", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/comissoes-config/route.ts:134"}, "properties": {"repobilityId": "4e053e9ae1568333", "scanner": "scanner-primary", "fingerprint": "76ae210bc69009d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90529cdf30766e3b", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/comissoes/route.ts:7"}, "properties": {"repobilityId": "1c5b882a73837dee", "scanner": "scanner-primary", "fingerprint": "90529cdf30766e3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41f0e1475d33a579", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/comissoes/transferir/route.ts:3"}, "properties": {"repobilityId": "8972edf481f16301", "scanner": "scanner-primary", "fingerprint": "41f0e1475d33a579", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-708bc19348560220", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/historico-precos-tabela/route.ts:42"}, "properties": {"repobilityId": "a621b9b5123ace32", "scanner": "scanner-primary", "fingerprint": "708bc19348560220", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e04ed35eec08efcf", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/admin/entregas/route.ts:11"}, "properties": {"repobilityId": "8d314d4658391a4e", "scanner": "scanner-primary", "fingerprint": "e04ed35eec08efcf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96a408c5d81af961", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/entregas/otimizar-rota/route.ts:15"}, "properties": {"repobilityId": "1549463d745222e0", "scanner": "scanner-primary", "fingerprint": "96a408c5d81af961", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d37078133a4c4812", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/stats/route.ts:4"}, "properties": {"repobilityId": "2a7fcf12be8fe0f8", "scanner": "scanner-primary", "fingerprint": "d37078133a4c4812", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-914fd51788e19189", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/dividas/[id]/route.ts:50"}, "properties": {"repobilityId": "08ffc2b9cb1fb444", "scanner": "scanner-primary", "fingerprint": "914fd51788e19189", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d0dde36a6ed2e17", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/link-compras/route.ts:42"}, "properties": {"repobilityId": "7e1d05bbcdcdbc86", "scanner": "scanner-primary", "fingerprint": "5d0dde36a6ed2e17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56195050f6afc97e", "level": "none", "message": {"text": "Commented-code block (11 lines) in app/api/admin/link-compras/encaminhar-entrega/route.ts:59"}, "properties": {"repobilityId": "58c8d7c11246d2bf", "scanner": "scanner-primary", "fingerprint": "56195050f6afc97e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e2fc05da81b3e2a", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/alerta-preco/silenciar/route.ts:67"}, "properties": {"repobilityId": "48b40546cb52287c", "scanner": "scanner-primary", "fingerprint": "0e2fc05da81b3e2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1bae946deb4a155f", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/admin/duvidas/metricas/route.ts:7"}, "properties": {"repobilityId": "e2fb7adf008ac5af", "scanner": "scanner-primary", "fingerprint": "1bae946deb4a155f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-524ff3d2835bee5e", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/loja/avaliacoes/route.ts:7"}, "properties": {"repobilityId": "33cd7f80d414dfe6", "scanner": "scanner-primary", "fingerprint": "524ff3d2835bee5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-313046a35a4f8086", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/route.ts:98"}, "properties": {"repobilityId": "00e182ffe74c6853", "scanner": "scanner-primary", "fingerprint": "313046a35a4f8086", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-85b0fad75710a36e", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/cron/relatorio-dono/route.ts:6"}, "properties": {"repobilityId": "3f8bd7751bb1f715", "scanner": "scanner-primary", "fingerprint": "85b0fad75710a36e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9a776c9658aa4a5", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/followup-simulacoes/route.ts:75"}, "properties": {"repobilityId": "92d47c013bbfa926", "scanner": "scanner-primary", "fingerprint": "f9a776c9658aa4a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e0b327a3a3b4c35", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/snapshot-estoque/route.ts:1"}, "properties": {"repobilityId": "dee82e5db99ba9de", "scanner": "scanner-primary", "fingerprint": "5e0b327a3a3b4c35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c0b82e162dfa8bf", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/backup-drive/route.ts:32"}, "properties": {"repobilityId": "6e64c1a42493065a", "scanner": "scanner-primary", "fingerprint": "3c0b82e162dfa8bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecf05c999c6d21d5", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/alerta-preco/route.ts:92"}, "properties": {"repobilityId": "da42a490ea772e0d", "scanner": "scanner-primary", "fingerprint": "ecf05c999c6d21d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92dcc585a9d62179", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/estoque/route.ts:260"}, "properties": {"repobilityId": "28e0d85d90d9bff2", "scanner": "scanner-primary", "fingerprint": "92dcc585a9d62179", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a24f26892ccfff7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/instagram/render-post/route.ts:58"}, "properties": {"repobilityId": "ec5040ed386fd106", "scanner": "scanner-primary", "fingerprint": "a24f26892ccfff7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fd51e61d074aaa0", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/instagram/ilustrar-slides/route.ts:536"}, "properties": {"repobilityId": "23124e728a6707e7", "scanner": "scanner-primary", "fingerprint": "4fd51e61d074aaa0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-309325686ef227cb", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/link-compras-auto/route.ts:40"}, "properties": {"repobilityId": "a2714bf8dd945437", "scanner": "scanner-primary", "fingerprint": "309325686ef227cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7cef1eda333ce5ce", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/link-compras/upload-print/route.ts:230"}, "properties": {"repobilityId": "ec55a71bf523f8a8", "scanner": "scanner-primary", "fingerprint": "7cef1eda333ce5ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25a92e0e984a742b", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/link-compras/[code]/preenchimento/route.ts:59"}, "properties": {"repobilityId": "9ccdc2ba39a9651a", "scanner": "scanner-primary", "fingerprint": "25a92e0e984a742b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31dd46fca8c7ea7b", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/perfil-banner/registrar/route.ts:48"}, "properties": {"repobilityId": "b5fdeac08528e225", "scanner": "scanner-primary", "fingerprint": "31dd46fca8c7ea7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b797e4547b196dce", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/troca/page.tsx:7"}, "properties": {"repobilityId": "aff78a7f0848a17d", "scanner": "scanner-primary", "fingerprint": "b797e4547b196dce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a45659b5fdae4a3", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/troca/[op]/page.tsx:8"}, "properties": {"repobilityId": "913cccb5a0d1b543", "scanner": "scanner-primary", "fingerprint": "7a45659b5fdae4a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0887e83525ab9c5", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/c/[d]/page.tsx:20"}, "properties": {"repobilityId": "0d04e17704ad6738", "scanner": "scanner-primary", "fingerprint": "f0887e83525ab9c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8190e9cecffedd94", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/compra/page.tsx:73"}, "properties": {"repobilityId": "24119c0495cc2a05", "scanner": "scanner-primary", "fingerprint": "8190e9cecffedd94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21cb8af9fe7dc6c8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/compra/page.tsx:128"}, "properties": {"repobilityId": "7359f47cd7e654c3", "scanner": "scanner-primary", "fingerprint": "21cb8af9fe7dc6c8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-92d3357becd31491", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/comprar-urgente/page.tsx:1"}, "properties": {"repobilityId": "63dabd2ed1721287", "scanner": "scanner-primary", "fingerprint": "92d3357becd31491", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36df9989292565fd", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/admin/minhas-comissoes/page.tsx:7"}, "properties": {"repobilityId": "283e3b4cedba64a3", "scanner": "scanner-primary", "fingerprint": "36df9989292565fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07de14016e7bd491", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/catalogo/page.tsx:1005"}, "properties": {"repobilityId": "ea6583905846cb27", "scanner": "scanner-primary", "fingerprint": "07de14016e7bd491", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3528fd392554e6cd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/catalogo/page.tsx:676"}, "properties": {"repobilityId": "330b039a2e6fbae8", "scanner": "scanner-primary", "fingerprint": "3528fd392554e6cd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4a134f7fcb19b35c", "level": "none", "message": {"text": "Commented-code block (11 lines) in app/admin/gastos/page.tsx:213"}, "properties": {"repobilityId": "3dbeedc02b20bba4", "scanner": "scanner-primary", "fingerprint": "4a134f7fcb19b35c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9677adb46e58fe27", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/gastos/page.tsx:433"}, "properties": {"repobilityId": "958bfa98629268db", "scanner": "scanner-primary", "fingerprint": "9677adb46e58fe27", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c96da532ca2520cb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/clientes/page.tsx:498"}, "properties": {"repobilityId": "e802d57a2394c87f", "scanner": "scanner-primary", "fingerprint": "c96da532ca2520cb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2febcde94e95f77e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/mostruario/page.tsx:148"}, "properties": {"repobilityId": "d4fab2a6b6d1946c", "scanner": "scanner-primary", "fingerprint": "2febcde94e95f77e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5fd198ed83a7219c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/analytics/page.tsx:112"}, "properties": {"repobilityId": "997a2dfad65fd4f0", "scanner": "scanner-primary", "fingerprint": "5fd198ed83a7219c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dc330ed006d6c6b0", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/admin/loja-banner/page.tsx:5"}, "properties": {"repobilityId": "bd4bea7caaf02e78", "scanner": "scanner-primary", "fingerprint": "dc330ed006d6c6b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56170ef0810b9b85", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/fornecedores/page.tsx:40"}, "properties": {"repobilityId": "b79e9193df8921c6", "scanner": "scanner-primary", "fingerprint": "56170ef0810b9b85", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d021c234fd9a84c5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/operacoes/page.tsx:56"}, "properties": {"repobilityId": "276f91b6935feda6", "scanner": "scanner-primary", "fingerprint": "d021c234fd9a84c5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d1879ecc51c3b2b2", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/admin/avaliacoes/page.tsx:5"}, "properties": {"repobilityId": "98432d5afe8aa2ab", "scanner": "scanner-primary", "fingerprint": "d1879ecc51c3b2b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5bbde35488f99b7d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/avaliacoes/page.tsx:74"}, "properties": {"repobilityId": "22f8c6814e6378c8", "scanner": "scanner-primary", "fingerprint": "5bbde35488f99b7d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c2e263cd7d1b49a0", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/admin/alertas-preco/page.tsx:6"}, "properties": {"repobilityId": "6bd14f97afcb05f7", "scanner": "scanner-primary", "fingerprint": "c2e263cd7d1b49a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf93eb62be4b07be", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/loja-produtos/page.tsx:473"}, "properties": {"repobilityId": "10e6e2e4edbd4f1e", "scanner": "scanner-primary", "fingerprint": "cf93eb62be4b07be", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-53794a3e78f41b0f", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/admin/simulacoes/page.tsx:115"}, "properties": {"repobilityId": "2e6b43ad80bf8516", "scanner": "scanner-primary", "fingerprint": "53794a3e78f41b0f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24e21deab11ecb4e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/simulacoes/page.tsx:784"}, "properties": {"repobilityId": "ece8aa68d2800453", "scanner": "scanner-primary", "fingerprint": "24e21deab11ecb4e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4734f0bac924dafb", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/admin/simulacoes/_components/DuvidaDetailModal.tsx:8"}, "properties": {"repobilityId": "ee8ead0d68beb1ee", "scanner": "scanner-primary", "fingerprint": "4734f0bac924dafb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9aca89835dcf7cab", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/admin/simulacoes/_components/DuvidasPanel.tsx:8"}, "properties": {"repobilityId": "d35969221d2aaa02", "scanner": "scanner-primary", "fingerprint": "9aca89835dcf7cab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f917bf995d652e66", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/simulacoes/_components/DuvidasPanel.tsx:132"}, "properties": {"repobilityId": "09245919a0e3476a", "scanner": "scanner-primary", "fingerprint": "f917bf995d652e66", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-11d29d95904b0075", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/admin/simulacoes/_components/DuvidasEditor.tsx:5"}, "properties": {"repobilityId": "09656251d0ac206a", "scanner": "scanner-primary", "fingerprint": "11d29d95904b0075", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d153b27bd7afd9e0", "level": "note", "message": {"text": "Legacy-named symbol `countLegacy` in app/admin/vendas/page.tsx:1254"}, "properties": {"repobilityId": "32eff64b14baa5e2", "scanner": "scanner-primary", "fingerprint": "d153b27bd7afd9e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-21fe1775cb1240bc", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/vendas/page.tsx:46"}, "properties": {"repobilityId": "b0fd9119ee8125e4", "scanner": "scanner-primary", "fingerprint": "21fe1775cb1240bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a329432b924bfea", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/vendas/page.tsx:563"}, "properties": {"repobilityId": "7efb817ae7a6d89c", "scanner": "scanner-primary", "fingerprint": "9a329432b924bfea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-eecae9b797650262", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/dashboard/page.tsx:42"}, "properties": {"repobilityId": "7ddc0d3be94fdcdc", "scanner": "scanner-primary", "fingerprint": "eecae9b797650262", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0860011f6e707ab", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/dashboard/page.tsx:110"}, "properties": {"repobilityId": "c2b8a3625c274035", "scanner": "scanner-primary", "fingerprint": "b0860011f6e707ab", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c305af63900e2fbd", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/admin/produtos-funcionarios/page.tsx:147"}, "properties": {"repobilityId": "2c193d67a64837cb", "scanner": "scanner-primary", "fingerprint": "c305af63900e2fbd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e28606f8b04d9426", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/produtos-funcionarios/page.tsx:193"}, "properties": {"repobilityId": "8248b9f096706656", "scanner": "scanner-primary", "fingerprint": "e28606f8b04d9426", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f2721a95772725d7", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/saldos/page.tsx:133"}, "properties": {"repobilityId": "fca0d520c42e1283", "scanner": "scanner-primary", "fingerprint": "f2721a95772725d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08aba1b9dc0473d1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/saldos/page.tsx:96"}, "properties": {"repobilityId": "9e469eafc27df40d", "scanner": "scanner-primary", "fingerprint": "08aba1b9dc0473d1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6cdb95ba073f3c70", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/conversas/page.tsx:128"}, "properties": {"repobilityId": "77407c264f894a89", "scanner": "scanner-primary", "fingerprint": "6cdb95ba073f3c70", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-53010c7983dd72d6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/conversas/canais/page.tsx:77"}, "properties": {"repobilityId": "f52ac7006774e535", "scanner": "scanner-primary", "fingerprint": "53010c7983dd72d6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3f098b777f6ba9d9", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/admin/cashback/page.tsx:6"}, "properties": {"repobilityId": "8618c451449cf354", "scanner": "scanner-primary", "fingerprint": "3f098b777f6ba9d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2dd87f4ebcdd1c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/prejuizos/page.tsx:10"}, "properties": {"repobilityId": "e2894212f2eaa79b", "scanner": "scanner-primary", "fingerprint": "a2dd87f4ebcdd1c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19ccf3db0221c15f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/encomendas/page.tsx:576"}, "properties": {"repobilityId": "ec6bbd491f34c6e1", "scanner": "scanner-primary", "fingerprint": "19ccf3db0221c15f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-719784306014d02f", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/admin/gerar-link/page.tsx:29"}, "properties": {"repobilityId": "c4bb80e081d02548", "scanner": "scanner-primary", "fingerprint": "719784306014d02f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2df38dc3fe1da9ae", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/gerar-link/page.tsx:99"}, "properties": {"repobilityId": "f4752df3e7fce973", "scanner": "scanner-primary", "fingerprint": "2df38dc3fe1da9ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-488fb318061b13cc", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/admin/etiquetas/page.tsx:27"}, "properties": {"repobilityId": "bab2efc6eb260927", "scanner": "scanner-primary", "fingerprint": "488fb318061b13cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21f362ad1258392d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/etiquetas/page.tsx:230"}, "properties": {"repobilityId": "3cd071a4cc5ceb5d", "scanner": "scanner-primary", "fingerprint": "21f362ad1258392d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-09faacaa3d680876", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/precos/page.tsx:309"}, "properties": {"repobilityId": "4878e8eea096a3df", "scanner": "scanner-primary", "fingerprint": "09faacaa3d680876", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a430f4be1e3924a4", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/financeiro/dividas/[id]/page.tsx:137"}, "properties": {"repobilityId": "162da369409adbf9", "scanner": "scanner-primary", "fingerprint": "a430f4be1e3924a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-879d7c0c3cedb411", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/financeiro/dividas/[id]/page.tsx:636"}, "properties": {"repobilityId": "0f8fe2d321cbb0e3", "scanner": "scanner-primary", "fingerprint": "879d7c0c3cedb411", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c7e9352186170d6f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/log/page.tsx:167"}, "properties": {"repobilityId": "5b47e42c63aaa6b1", "scanner": "scanner-primary", "fingerprint": "c7e9352186170d6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff3fed3c0a26f29f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/log/page.tsx:121"}, "properties": {"repobilityId": "6967a955e444b731", "scanner": "scanner-primary", "fingerprint": "ff3fed3c0a26f29f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dde3519347e93cda", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/admin/auditoria/page.tsx:1407"}, "properties": {"repobilityId": "33b43ec323b15e66", "scanner": "scanner-primary", "fingerprint": "dde3519347e93cda", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81a29c04205d2a4a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/auditoria/page.tsx:1624"}, "properties": {"repobilityId": "e9911ad2e03b51db", "scanner": "scanner-primary", "fingerprint": "81a29c04205d2a4a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d7cfcc7e4a2214a1", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/admin/orcamento/page.tsx:185"}, "properties": {"repobilityId": "4f4ec95a630a9739", "scanner": "scanner-primary", "fingerprint": "d7cfcc7e4a2214a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0de6bdb60eca675", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/orcamento/page.tsx:234"}, "properties": {"repobilityId": "7f5c4e4728882c78", "scanner": "scanner-primary", "fingerprint": "e0de6bdb60eca675", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3ef01e878196a222", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/admin/usados/page.tsx:841"}, "properties": {"repobilityId": "48dd51ec99bf090e", "scanner": "scanner-primary", "fingerprint": "3ef01e878196a222", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d1634f13015b187", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/usados/page.tsx:318"}, "properties": {"repobilityId": "b85b2e8e0cee4c86", "scanner": "scanner-primary", "fingerprint": "3d1634f13015b187", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-df824c21e3605c69", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/estoque/page.tsx:116"}, "properties": {"repobilityId": "521cdf6c24145a1b", "scanner": "scanner-primary", "fingerprint": "df824c21e3605c69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11a23c3fa27ff8a1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/estoque/page.tsx:2202"}, "properties": {"repobilityId": "4dd2566830469be8", "scanner": "scanner-primary", "fingerprint": "11a23c3fa27ff8a1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d3c044cd2eb3e142", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/importar/page.tsx:30"}, "properties": {"repobilityId": "08f825b46c6d51dc", "scanner": "scanner-primary", "fingerprint": "d3c044cd2eb3e142", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9f06d0c9b7bc9e38", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/analytics-vendas/page.tsx:227"}, "properties": {"repobilityId": "b18b9e6aab43f944", "scanner": "scanner-primary", "fingerprint": "9f06d0c9b7bc9e38", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9331c290f6acb162", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/cotacao/page.tsx:42"}, "properties": {"repobilityId": "dd3095d981b425ec", "scanner": "scanner-primary", "fingerprint": "9331c290f6acb162", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b77695741ed0606f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/mapa-vendas/page.tsx:118"}, "properties": {"repobilityId": "80fbf7f48230805e", "scanner": "scanner-primary", "fingerprint": "b77695741ed0606f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-acd210408c27e399", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/recebiveis/page.tsx:92"}, "properties": {"repobilityId": "3fe551b92167ec4e", "scanner": "scanner-primary", "fingerprint": "acd210408c27e399", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4667138efb1d12b9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/configuracoes/page.tsx:42"}, "properties": {"repobilityId": "a0b5116f34cfdd32", "scanner": "scanner-primary", "fingerprint": "4667138efb1d12b9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-72586d7968420659", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/admin/instagram/[id]/page.tsx:239"}, "properties": {"repobilityId": "aa9314ef20618688", "scanner": "scanner-primary", "fingerprint": "72586d7968420659", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-934615d6ef0d7a7e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/instagram/[id]/page.tsx:274"}, "properties": {"repobilityId": "d617748e822fd252", "scanner": "scanner-primary", "fingerprint": "934615d6ef0d7a7e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b9dcbbdaecfe2252", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/instagram/configuracoes/page.tsx:81"}, "properties": {"repobilityId": "8eb378ec4235f281", "scanner": "scanner-primary", "fingerprint": "b9dcbbdaecfe2252", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6f7381bcd33de27b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/migrations/page.tsx:82"}, "properties": {"repobilityId": "16c7725a9d430850", "scanner": "scanner-primary", "fingerprint": "6f7381bcd33de27b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0623535b628f3e70", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/relatorio/page.tsx:84"}, "properties": {"repobilityId": "5ac5c39b12d4c7e2", "scanner": "scanner-primary", "fingerprint": "0623535b628f3e70", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ba2d0c6bfaa5cd9c", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/comissoes/page.tsx:155"}, "properties": {"repobilityId": "9aa80132e171ff33", "scanner": "scanner-primary", "fingerprint": "ba2d0c6bfaa5cd9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-374e09c6717d92c7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/avisos-clientes/page.tsx:106"}, "properties": {"repobilityId": "5f99e89f247d5d8d", "scanner": "scanner-primary", "fingerprint": "374e09c6717d92c7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c69cfef5434bb5e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/entregas/page.tsx:146"}, "properties": {"repobilityId": "9d0704e9338d9184", "scanner": "scanner-primary", "fingerprint": "c69cfef5434bb5e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bfae54a110d6cf9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/admin/entregas/page.tsx:826"}, "properties": {"repobilityId": "bd0bbda9390f8001", "scanner": "scanner-primary", "fingerprint": "0bfae54a110d6cf9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dfe7d5f6643fbe58", "level": "note", "message": {"text": "Legacy-named symbol `calculadora_misto_historico_v1` in app/admin/calculadora-taxas/page.tsx:251"}, "properties": {"repobilityId": "c98b716e6c7e66c9", "scanner": "scanner-primary", "fingerprint": "dfe7d5f6643fbe58", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d49fe52272b8e5ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/calculadora-taxas/page.tsx:36"}, "properties": {"repobilityId": "7aa2d144cccebcdb", "scanner": "scanner-primary", "fingerprint": "d49fe52272b8e5ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b94a5ef93e904abb", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/loja/avaliar/[numero]/page.tsx:8"}, "properties": {"repobilityId": "c26e293010ac8f3d", "scanner": "scanner-primary", "fingerprint": "b94a5ef93e904abb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ca7ea700df03893", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/loja/checkout/page.tsx:5"}, "properties": {"repobilityId": "326d428bdd8ab65b", "scanner": "scanner-primary", "fingerprint": "2ca7ea700df03893", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64824260efcbaa0e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/loja/checkout/page.tsx:122"}, "properties": {"repobilityId": "a75c2041c2651333", "scanner": "scanner-primary", "fingerprint": "64824260efcbaa0e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f003743baae61e37", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/loja/pedido/[numero]/page.tsx:9"}, "properties": {"repobilityId": "bb7cb607b51102e8", "scanner": "scanner-primary", "fingerprint": "f003743baae61e37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9906cf9fc88a389d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/produto/[slug]/page.tsx:198"}, "properties": {"repobilityId": "d5066eec3bc53217", "scanner": "scanner-primary", "fingerprint": "9906cf9fc88a389d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-72d454be6b413ff1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/comparador/page.tsx:24"}, "properties": {"repobilityId": "98d40d722f127880", "scanner": "scanner-primary", "fingerprint": "72d454be6b413ff1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e7ca8e11e5b14449", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/pagamento-confirmado/page.tsx:4"}, "properties": {"repobilityId": "65c803dde682d3d4", "scanner": "scanner-primary", "fingerprint": "e7ca8e11e5b14449", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72fd3039bec72497", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/sheets.ts:294"}, "properties": {"repobilityId": "dd24b53dce06c55e", "scanner": "scanner-primary", "fingerprint": "72fd3039bec72497", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-acd394e57d81c067", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/sheets.ts:10"}, "properties": {"repobilityId": "fd87a4625d19089f", "scanner": "scanner-primary", "fingerprint": "acd394e57d81c067", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7218b2d6c59658c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/whatsappFollowUp.ts:8"}, "properties": {"repobilityId": "43fb2ad78ada700a", "scanner": "scanner-primary", "fingerprint": "7218b2d6c59658c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08508f0114d8acb3", "level": "note", "message": {"text": "Legacy-named symbol `custom_cor_pt_v1` in lib/cor-pt.ts:68"}, "properties": {"repobilityId": "52f810b43efb0ba4", "scanner": "scanner-primary", "fingerprint": "08508f0114d8acb3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-765d925656ad7100", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/cor-pt.ts:215"}, "properties": {"repobilityId": "49a7a1d33e6ca33e", "scanner": "scanner-primary", "fingerprint": "765d925656ad7100", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2fd05f6d4d866a59", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/email.ts:103"}, "properties": {"repobilityId": "328a29cae96be6a9", "scanner": "scanner-primary", "fingerprint": "2fd05f6d4d866a59", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-37a38f49366bcd3d", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/vendas-trocas-sync.ts:108"}, "properties": {"repobilityId": "1da077cef43bee0c", "scanner": "scanner-primary", "fingerprint": "37a38f49366bcd3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9eea93827aa0f7c", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/honeypot-client.ts:1"}, "properties": {"repobilityId": "fce58e49dffa302c", "scanner": "scanner-primary", "fingerprint": "c9eea93827aa0f7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c2b84573501ec766", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/duvidas-padrao.ts:6"}, "properties": {"repobilityId": "fc627d43f212ee4f", "scanner": "scanner-primary", "fingerprint": "c2b84573501ec766", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24a40c9e9065662b", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/ab-test-anchor.ts:3"}, "properties": {"repobilityId": "2f403eb9d897d921", "scanner": "scanner-primary", "fingerprint": "24a40c9e9065662b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bdd4e88c5a986d89", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/vendas-utils.ts:29"}, "properties": {"repobilityId": "3f3b40af85f20960", "scanner": "scanner-primary", "fingerprint": "bdd4e88c5a986d89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ca90a0231ca650e", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/track-event.ts:7"}, "properties": {"repobilityId": "a59c5e5b49a35105", "scanner": "scanner-primary", "fingerprint": "3ca90a0231ca650e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf9a1eeae946662b", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/supabase-helpers.ts:1"}, "properties": {"repobilityId": "fc5a7283a33a7cda", "scanner": "scanner-primary", "fingerprint": "bf9a1eeae946662b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc76e17f21775973", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/sku.ts:4"}, "properties": {"repobilityId": "29ca5a5681052b54", "scanner": "scanner-primary", "fingerprint": "bc76e17f21775973", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a507726dd1cc99e", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/sms.ts:1"}, "properties": {"repobilityId": "12436809c05d1103", "scanner": "scanner-primary", "fingerprint": "8a507726dd1cc99e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c738f3bbb649619", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/sms.ts:179"}, "properties": {"repobilityId": "bfff3a9e15b1a536", "scanner": "scanner-primary", "fingerprint": "3c738f3bbb649619", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-21a8990448edf827", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/calculations.ts:411"}, "properties": {"repobilityId": "77a485c184d2d164", "scanner": "scanner-primary", "fingerprint": "21a8990448edf827", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f78c47003b58a5f0", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/avisos-match.ts:11"}, "properties": {"repobilityId": "4423c014f3a810e6", "scanner": "scanner-primary", "fingerprint": "f78c47003b58a5f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e0fe030a5e8c28d", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/codigo-retirada.ts:3"}, "properties": {"repobilityId": "444600d21ed0cfd3", "scanner": "scanner-primary", "fingerprint": "2e0fe030a5e8c28d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44bfad25bb75cc04", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/infosimples.ts:104"}, "properties": {"repobilityId": "99763f920ea384d2", "scanner": "scanner-primary", "fingerprint": "44bfad25bb75cc04", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fcc7bf09db3c83d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/produto-display.ts:121"}, "properties": {"repobilityId": "f5c178e586afe362", "scanner": "scanner-primary", "fingerprint": "fcc7bf09db3c83d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e459011916d309fa", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/sku-validator.ts:9"}, "properties": {"repobilityId": "865fbb7f5e0900c8", "scanner": "scanner-primary", "fingerprint": "e459011916d309fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b689b7de55b5ba73", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/frete-rj.ts:3"}, "properties": {"repobilityId": "43cdd78fafd92f70", "scanner": "scanner-primary", "fingerprint": "b689b7de55b5ba73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-977e0faabcda8050", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/troca-nome.ts:1"}, "properties": {"repobilityId": "81ee0edef41891b9", "scanner": "scanner-primary", "fingerprint": "977e0faabcda8050", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2b93f1b518e27a1", "level": "note", "message": {"text": "Legacy-named symbol `tigrao_utm_v1` in lib/utm-tracker.ts:20"}, "properties": {"repobilityId": "e4f9140ca3c9c664", "scanner": "scanner-primary", "fingerprint": "b2b93f1b518e27a1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bed68ca9cc4a2b05", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/utm-tracker.ts:6"}, "properties": {"repobilityId": "fc2edada9c5fcb48", "scanner": "scanner-primary", "fingerprint": "bed68ca9cc4a2b05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-224a1bea3700d0f0", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/zapi.ts:1"}, "properties": {"repobilityId": "43323a296fe0b1f3", "scanner": "scanner-primary", "fingerprint": "224a1bea3700d0f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ffcb1b80bc5ca3a", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/gdrive.ts:6"}, "properties": {"repobilityId": "23e306f37f425743", "scanner": "scanner-primary", "fingerprint": "0ffcb1b80bc5ca3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85e0620f190570f9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/gdrive.ts:112"}, "properties": {"repobilityId": "dc383d0f75940ab8", "scanner": "scanner-primary", "fingerprint": "85e0620f190570f9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-96943f7cfeed71ac", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/prejuizo-format.ts:1"}, "properties": {"repobilityId": "f4fc8b793045912c", "scanner": "scanner-primary", "fingerprint": "96943f7cfeed71ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c8cccc5d0405434", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/vendedores.ts:1"}, "properties": {"repobilityId": "faaf5ac696af48b3", "scanner": "scanner-primary", "fingerprint": "0c8cccc5d0405434", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67c5cbe045858a74", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/duvidas-padrao-server.ts:6"}, "properties": {"repobilityId": "212b9cdada306176", "scanner": "scanner-primary", "fingerprint": "67c5cbe045858a74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a811aa61e382ceeb", "level": "none", "message": {"text": "Commented-code block (11 lines) in lib/comissoes-paloma.ts:3"}, "properties": {"repobilityId": "1d40b989e3e78419", "scanner": "scanner-primary", "fingerprint": "a811aa61e382ceeb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0767d6a9e93286ce", "level": "none", "message": {"text": "Commented-code block (19 lines) in lib/gastos-utils.ts:9"}, "properties": {"repobilityId": "6e363b87ac30919d", "scanner": "scanner-primary", "fingerprint": "0767d6a9e93286ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99af4628a5568410", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/sms-base-clientes.ts:12"}, "properties": {"repobilityId": "80d1458a38bb4bb0", "scanner": "scanner-primary", "fingerprint": "99af4628a5568410", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a571690c08175939", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/formatPedido.ts:1"}, "properties": {"repobilityId": "7b7b91564dccd0e9", "scanner": "scanner-primary", "fingerprint": "a571690c08175939", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad67c3541b3b4264", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/pdf-termo-garantia-seminovo.ts:1"}, "properties": {"repobilityId": "48876424060f2b2a", "scanner": "scanner-primary", "fingerprint": "ad67c3541b3b4264", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4680b284a5688d2", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/spec-labels.ts:1"}, "properties": {"repobilityId": "40336f94d45bc2b7", "scanner": "scanner-primary", "fingerprint": "a4680b284a5688d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0a81ac818a5a1f8", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/contrato-auto.ts:5"}, "properties": {"repobilityId": "00c53b66f00e9feb", "scanner": "scanner-primary", "fingerprint": "d0a81ac818a5a1f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a61d274f8002a3e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/pdf-encomenda.ts:136"}, "properties": {"repobilityId": "992d200c2f055717", "scanner": "scanner-primary", "fingerprint": "a61d274f8002a3e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20a1cc575c7c6bc0", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/produto-cores.ts:1"}, "properties": {"repobilityId": "4445737153a69776", "scanner": "scanner-primary", "fingerprint": "20a1cc575c7c6bc0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27da43e6a4829d72", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/saldos.ts:71"}, "properties": {"repobilityId": "d3c1fa8bdc0f2311", "scanner": "scanner-primary", "fingerprint": "27da43e6a4829d72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-310863ca7c07b75c", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/loja-tradein.ts:6"}, "properties": {"repobilityId": "bc59aca8d0957128", "scanner": "scanner-primary", "fingerprint": "310863ca7c07b75c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06028904ca357610", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/meta-capi.ts:11"}, "properties": {"repobilityId": "71a37a80f0e53cf3", "scanner": "scanner-primary", "fingerprint": "06028904ca357610", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8935a44f096a3090", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/upgrade-logico.ts:6"}, "properties": {"repobilityId": "846e2f6f2090c142", "scanner": "scanner-primary", "fingerprint": "8935a44f096a3090", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5af966e0708701fe", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/vendedores-hooks.ts:3"}, "properties": {"repobilityId": "98aaaf80156b2c16", "scanner": "scanner-primary", "fingerprint": "5af966e0708701fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-949c224f61ed4ba4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/vendedores-hooks.ts:28"}, "properties": {"repobilityId": "5135cdf5fbab621b", "scanner": "scanner-primary", "fingerprint": "949c224f61ed4ba4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8e4e793060807a3c", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/produto-sort.ts:32"}, "properties": {"repobilityId": "6b929cf97e37b33e", "scanner": "scanner-primary", "fingerprint": "8e4e793060807a3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7bc62e5953e0f2e1", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/mpPreference.ts:1"}, "properties": {"repobilityId": "06e7c99b0796cf35", "scanner": "scanner-primary", "fingerprint": "7bc62e5953e0f2e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d0a6a6d78aceb30", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/loja-produtos.ts:3"}, "properties": {"repobilityId": "2eb85406e988bde8", "scanner": "scanner-primary", "fingerprint": "2d0a6a6d78aceb30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e876fc74faac511", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/mask.ts:31"}, "properties": {"repobilityId": "8350b71d9e88da40", "scanner": "scanner-primary", "fingerprint": "8e876fc74faac511", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4ad97a7fe11e905", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/mcp-tools.ts:554"}, "properties": {"repobilityId": "7915e660039f8480", "scanner": "scanner-primary", "fingerprint": "d4ad97a7fe11e905", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0f2e18b94efcf8f", "level": "none", "message": {"text": "Commented-code block (10 lines) in lib/criarVendasDePedido.ts:5"}, "properties": {"repobilityId": "b8e2a0a137cd2294", "scanner": "scanner-primary", "fingerprint": "f0f2e18b94efcf8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69e7307d0f5a0a49", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/entregador-auth.ts:3"}, "properties": {"repobilityId": "a79975cbfe6925a4", "scanner": "scanner-primary", "fingerprint": "69e7307d0f5a0a49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e06ad54a435a350f", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/admin-types.ts:99"}, "properties": {"repobilityId": "78af04c2d8345e61", "scanner": "scanner-primary", "fingerprint": "e06ad54a435a350f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28b7bebd283a0066", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/link-heuristics.ts:3"}, "properties": {"repobilityId": "7a7bc1bf4f6c3bbc", "scanner": "scanner-primary", "fingerprint": "28b7bebd283a0066", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3517a70af731b9d7", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/watch-cores.ts:1"}, "properties": {"repobilityId": "16da3614d7817669", "scanner": "scanner-primary", "fingerprint": "3517a70af731b9d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f451bfaee172b01", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/normaliza-vendedor.ts:4"}, "properties": {"repobilityId": "38f55d92dc8402ea", "scanner": "scanner-primary", "fingerprint": "6f451bfaee172b01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0fb838462d44b34a", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/comissoes-utils.ts:15"}, "properties": {"repobilityId": "e93f298aeeeae0ac", "scanner": "scanner-primary", "fingerprint": "0fb838462d44b34a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1608da95c223da65", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/contrato-encomenda-auto.ts:7"}, "properties": {"repobilityId": "09ed5726afdf12b0", "scanner": "scanner-primary", "fingerprint": "1608da95c223da65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3d7b3e6a8502de7", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/iphone-specs.ts:3"}, "properties": {"repobilityId": "90ed4e9ed204dd3c", "scanner": "scanner-primary", "fingerprint": "f3d7b3e6a8502de7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f749d08ffb85dbd1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/useAutoRefetch.ts:15"}, "properties": {"repobilityId": "db03d302dd3565f8", "scanner": "scanner-primary", "fingerprint": "f749d08ffb85dbd1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9155234ce0e07d2c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/telegram.ts:68"}, "properties": {"repobilityId": "a14c4d40afa45ed5", "scanner": "scanner-primary", "fingerprint": "9155234ce0e07d2c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f7160f99b03dce9c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/zapsign.ts:96"}, "properties": {"repobilityId": "a6c401c305930f10", "scanner": "scanner-primary", "fingerprint": "f7160f99b03dce9c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-97d88344e3e36543", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/cliente-lookup.ts:3"}, "properties": {"repobilityId": "8e8814e3251db3ee", "scanner": "scanner-primary", "fingerprint": "97d88344e3e36543", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88af190c6f58585b", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/maps-link.ts:3"}, "properties": {"repobilityId": "acd2e8c37ab3897b", "scanner": "scanner-primary", "fingerprint": "88af190c6f58585b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-567343ae70a7c673", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/entrega-from-link.ts:1"}, "properties": {"repobilityId": "217cf93cca9b398c", "scanner": "scanner-primary", "fingerprint": "567343ae70a7c673", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c5c00412b799966", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/whatsapp-templates/formatDuvidaMessage.ts:6"}, "properties": {"repobilityId": "0db574ed8c0becdf", "scanner": "scanner-primary", "fingerprint": "6c5c00412b799966", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-118c630cdd2f520c", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/instagram/slide-layout.tsx:165"}, "properties": {"repobilityId": "508331e13635b051", "scanner": "scanner-primary", "fingerprint": "118c630cdd2f520c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1947b903cddcdf5e", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/sw.js:66"}, "properties": {"repobilityId": "d1dfe2efaf19b379", "scanner": "scanner-primary", "fingerprint": "1947b903cddcdf5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}