{"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-940107ca7aeaf780", "name": "Possibly dead Python function: fix_status", "shortDescription": {"text": "Possibly dead Python function: fix_status"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-05026928180e430f", "name": "Possibly dead Python function: fix_related_adrs", "shortDescription": {"text": "Possibly dead Python function: fix_related_adrs"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-31c788f0217da538", "name": "Possibly dead Python function: dedupe_yaml_list", "shortDescription": {"text": "Possibly dead Python function: dedupe_yaml_list"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c4a259e331e012b6", "name": "Possibly dead Python function: dedupe_inline", "shortDescription": {"text": "Possibly dead Python function: dedupe_inline"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-261583d6e983f5fd", "name": "Possibly dead Python function: replace_related", "shortDescription": {"text": "Possibly dead Python function: replace_related"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-337edc5ec5acd4d6", "name": "Possibly dead Python function: fix_date", "shortDescription": {"text": "Possibly dead Python function: fix_date"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a73699ef9c4c35d1", "name": "Possibly dead Python function: fix_authors", "shortDescription": {"text": "Possibly dead Python function: fix_authors"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dddc62c88b6c048d", "name": "Possibly dead Python function: fix_related_adrs", "shortDescription": {"text": "Possibly dead Python function: fix_related_adrs"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1d1ed85ed1d4ba57", "name": "Possibly dead Python function: fix_duration", "shortDescription": {"text": "Possibly dead Python function: fix_duration"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ba7cec4c0c84cfb6", "name": "Possibly dead Python function: fix_status", "shortDescription": {"text": "Possibly dead Python function: fix_status"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-573d24a3582e6d85", "name": "Possibly dead Python function: fix_related_adrs", "shortDescription": {"text": "Possibly dead Python function: fix_related_adrs"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ae1927018f504276", "name": "Possibly dead Python function: hash_label", "shortDescription": {"text": "Possibly dead Python function: hash_label"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ccaec642bbe6cec7", "name": "Possibly dead Python function: fix_status", "shortDescription": {"text": "Possibly dead Python function: fix_status"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9be405727eb1c694", "name": "Possibly dead Python function: repl", "shortDescription": {"text": "Possibly dead Python function: repl"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b8e4c3bd1cd27e43", "name": "Possibly dead Python function: fix_yaml_list", "shortDescription": {"text": "Possibly dead Python function: fix_yaml_list"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-acc3982715b75d62", "name": "Possibly dead Python function: fix_decided_at", "shortDescription": {"text": "Possibly dead Python function: fix_decided_at"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e58ba5972d10067d", "name": "Possibly dead Python function: fix_number", "shortDescription": {"text": "Possibly dead Python function: fix_number"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bd55aad1cc276ef2", "name": "Possibly dead Python function: slugify", "shortDescription": {"text": "Possibly dead Python function: slugify"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-edb4754d631c4da5", "name": "Possibly dead Python function: topological_order", "shortDescription": {"text": "Possibly dead Python function: topological_order"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9627e0f8297edca7", "name": "Possibly dead Python function: list_user_tables", "shortDescription": {"text": "Possibly dead Python function: list_user_tables"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-61a4a4afc6d3d847", "name": "Possibly dead Python function: read_last_codigo_processed", "shortDescription": {"text": "Possibly dead Python function: read_last_codigo_processed"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e450f467fc04d237", "name": "Possibly dead Python function: mark_partial", "shortDescription": {"text": "Possibly dead Python function: mark_partial"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-461d87e849698daa", "name": "Possibly dead Python function: mark_chunk_progress", "shortDescription": {"text": "Possibly dead Python function: mark_chunk_progress"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f05c365dfd97da2", "name": "Possibly dead Python function: coverage_report", "shortDescription": {"text": "Possibly dead Python function: coverage_report"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e71eeffa5c3326d5", "name": "Possibly dead Python function: slugify_short", "shortDescription": {"text": "Possibly dead Python function: slugify_short"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-92aeeea8a77746c1", "name": "Possibly dead Python function: slugify", "shortDescription": {"text": "Possibly dead Python function: slugify"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f2b2e247fc4765cd", "name": "Possibly dead Python function: n", "shortDescription": {"text": "Possibly dead Python function: n"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7d5b6ba0b9cdb6ba", "name": "File has no detected symbols: scripts/fix_adr_legacy_schema.py", "shortDescription": {"text": "File has no detected symbols: scripts/fix_adr_legacy_schema.py"}, "fullDescription": {"text": "Source file with no class/function declarations \u2014 possible config, dead code, or scratch file."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a8fa3ebcf2a56c45", "name": "TODO/FIXME marker in shipping code \u2014 Modules/Crm/Resources/assets/js/crm.js:872", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 Modules/Crm/Resources/assets/js/crm.js:872"}, "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-b3813d59653209c1", "name": "Stray `console.log` in TS/JS \u2014 prototipo-ui/vendas-page.jsx:157", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/vendas-page.jsx:157"}, "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-d95fb58deee7b900", "name": "Icon-only button without accessible name \u2014 prototipo-ui/vendas-extras.jsx:538", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/vendas-extras.jsx:538"}, "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-34937c46d131ade9", "name": "Stray `console.log` in TS/JS \u2014 prototipo-ui/vendas-extras.jsx:285", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/vendas-extras.jsx:285"}, "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-4407feed63f59f14", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/bol", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/boletos/cowork-app.jsx:359"}, "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-b8c9e4502b399eb3", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/pay", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/components/pg-payment-gateways-page.jsx:219"}, "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-4712f24bbd7f4174", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/pay", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/components/pg-cobranca-page.jsx:290"}, "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-39b631988f93ea1c", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/pay", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/components/pg-shared.jsx: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-7690be1a380992b9", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto-cockp", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto-cockpit/produto-cockpit-page.jsx:122"}, "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-6fef71145f09fb58", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/se", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/mockup-pages.jsx:18"}, "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-d47e3d507b66bb35", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sel", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/producao-page.jsx:294"}, "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-3d16d80051292a63", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/k", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-trouble-lib.jsx:146"}, "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-6d4fce6fa88ad06b", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/k", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-trouble-editor.jsx:74"}, "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-515f3a121697e919", "name": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-page.j", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-page.jsx:346"}, "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-19c721d7f996f3fa", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/k", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-page.jsx:1208"}, "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-b91f92e383247281", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/se", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-page.jsx:1237"}, "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-8ee6275ff5e8027e", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sel", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/financeiro-app.jsx:181"}, "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-a36e35c19b84b25f", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/m", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/mockup-bodies.js:4"}, "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-d1948cd764036c7f", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sel", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/boleto-contas-app.jsx:359"}, "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-ca9fe2aaba9f4f3f", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sel", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/produto-app.jsx:96"}, "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-b472823c9e6e6db2", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/i", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-v2-extras.jsx:254"}, "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-0da46f1782499e1a", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/k", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-images-print.jsx:170"}, "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-0618f47db68d6f63", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/v", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-extras.jsx:482"}, "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-097187826df4beea", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/i", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-v2-ai.jsx:102"}, "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-20fbec6cf8b24849", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/se", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-v2-ai.jsx:112"}, "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-bb86f81be4ec0532", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/i", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-v2-cur.jsx:249"}, "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-ecb13c4226ff6382", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/i", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-v2-out.jsx:124"}, "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-1f22a3b1a6a85df0", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/f", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/financeiro-telas-extras.jsx:271"}, "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-c963cd08a208ff9d", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sel", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/financeiro-telas-extras.jsx:153"}, "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-b864514c494eba8f", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/k", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-extras.jsx: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-9662df11d47fda70", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/se", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-extras.jsx:137"}, "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-cf6105d5c074bfea", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/c", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/compras-page.jsx:218"}, "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-c336010a8029d04f", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/k", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-paths.jsx:141"}, "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-078d6d1030cf2f18", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/recurring/rec", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/recurring/recurring-page.jsx:865"}, "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-2082630873965c04", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/fin", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-fluxo/page.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-29a15a7645ca6273", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/pro", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/producao-oficina/cowork-app.jsx:294"}, "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-a145d80a6a00e3bc", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/fin", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-conciliacao/page.tsx:112"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b04788f99de37ad", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/pro", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto/produto-app.jsx:96"}, "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-0cab01d37dc44d2e", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/pro", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto/cowork-app.jsx:96"}, "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-d9146adfeed5d89b", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/pro", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto-unificado/produto-app.jsx:96"}, "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-41cf09f6ec1b0478", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/pro", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto-unificado/page.tsx:256"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-751c1ff9c60d366a", "name": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto-unificado/p", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto-unificado/page.tsx:350"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cdf0a3fe41c3ad44", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/vendas-cockpi", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/vendas-cockpit/cowork-extras.jsx:442"}, "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-c5fe5b43d1dbe8ca", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-trouble", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-trouble-lib.jsx:146"}, "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-7c35359dd4b4cda8", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-trouble", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-trouble-editor.jsx:74"}, "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-e8ca5ba90b5bcecd", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-page.js", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-page.jsx:1208"}, "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-9cd18c100b7e1ab3", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-page.jsx:1237"}, "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-c96bfc0dc281d907", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-images-", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-images-print.jsx:170"}, "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-933123f71ce1b4ab", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-extras.", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-extras.jsx: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-1d1b1b14af7d076f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-extras.jsx:137"}, "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-d4c08d142f32abb5", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-paths.j", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-paths.jsx:141"}, "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-fd4c493f9e3aec7f", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-create/", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-create/vendas-extras.jsx:442"}, "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-a746698099f8afd2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/mockup-pages.jsx:18", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/mockup-pages.jsx:18"}, "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-f3b49cc6f36ce686", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/producao-page.jsx:294", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/producao-page.jsx:294"}, "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-d2ba65b8d420ecb4", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-trouble-lib.jsx:146", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-trouble-lib.jsx:146"}, "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-a5bb6d92e62f9860", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-trouble-editor.jsx:74", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-trouble-editor.jsx:74"}, "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-9fc106acaae3ae86", "name": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-page.jsx:346", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-page.jsx:346"}, "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-56449e7915cb8fc2", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-page.jsx:1208", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-page.jsx:1208"}, "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-2e8729d1dc0aaa2d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-page.jsx:1237", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-page.jsx:1237"}, "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-f7a17ac37e5a5463", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/mockup-bodies.js:4", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/mockup-bodies.js:4"}, "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-6697fb71e82f6de2", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/boleto-contas-app.jsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/boleto-contas-app.jsx:359"}, "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-b0e26137c4fdde9c", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-extras.jsx:254", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-extras.jsx:254"}, "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-d958bfec5d936021", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-images-print.jsx:170", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-images-print.jsx:170"}, "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-10a9d696a1d74647", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-extras.jsx:482", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-extras.jsx:482"}, "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-864f7fa02f8284e0", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-ai.jsx:102", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-ai.jsx:102"}, "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-4bacd8f47f6e3719", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-ai.jsx:112", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-ai.jsx:112"}, "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-9a09681aac1122ed", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-cur.jsx:249", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-cur.jsx:249"}, "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-34bf579208924fe6", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-out.jsx:124", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-out.jsx:124"}, "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-059883079fa383e8", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-extras.jsx:128", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-extras.jsx: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-8f4dd9c29deb4103", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-extras.jsx:137", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-extras.jsx:137"}, "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-7eb5f211fa2be321", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/compras-page.jsx:218", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/compras-page.jsx:218"}, "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-6fac7c1f5a3b0d73", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-paths.jsx:141", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-paths.jsx:141"}, "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-4b8ce7812f0b8601", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/mockup-pages.jsx:18"}, "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-c994187d4b53422d", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/producao-page.jsx:294"}, "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-e083b45e292725be", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-trouble-lib.jsx:146"}, "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-48952f67a85526e9", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-trouble-editor.jsx:74"}, "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-66b2dc7504f13014", "name": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/p", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/vendas-page.jsx:346"}, "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-c3cd9bea844f5f8b", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-page.jsx:1208"}, "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-09ccb3cf37e0bc95", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-page.jsx:1237"}, "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-60fc12e318c4dadb", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-app.jsx: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-0e42b6bf28500fd5", "name": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/p", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-app.jsx:748"}, "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-9909f84ce3e59f7b", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/mockup-bodies.js:4"}, "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-c1e58322b8fc9bc5", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/boleto-contas-app.jsx:359"}, "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-028203025b9a52b3", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-v2-extras.jsx:254"}, "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-f2a9a8949f177ff3", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-images-print.jsx:170"}, "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-a4a3f78c1af1ba60", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/vendas-extras.jsx:482"}, "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-f59dbda1be40676e", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-v2-ai.jsx:102"}, "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-bfae5a9a6a55b5ef", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-v2-ai.jsx:112"}, "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-a184911c4e20b881", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-v2-cur.jsx:249"}, "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-1df87a9ad5e47f16", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-v2-out.jsx:124"}, "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-528a5975241f4539", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-telas-extras.jsx:300"}, "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-4c93c91c4c1e989f", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-telas-extras.jsx:180"}, "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-4472476ccc65ed36", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-extras.jsx: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-49ae4e88301e9520", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-extras.jsx:137"}, "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-42a7a4f4915a23a6", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/compras-page.jsx:218"}, "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-89a2caf677a3261c", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-paths.jsx:141"}, "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-d61de1b93e5dfa3a", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/shared/PageHeader.tsx:49"}, "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-8fd0778471fd4707", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/shared/DataTable.tsx:214"}, "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-2cbdf53c1dab02f5", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/shared/KpiCard.tsx:114"}, "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-d4879ef1cf38501a", "name": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bu", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/cockpit/Sidebar.tsx:76"}, "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-d192e6063ba66058", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Layouts/AppShell.tsx:92"}, "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-e5d9ca7e125bd84d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/"}, "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-97a880808a5fc7b4", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/p"}, "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-9bf41dfd6fc17f2d", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/f"}, "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-e6f5b59678642760", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/mockup-bodi"}, "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-3898abafd2fd81f9", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/b"}, "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-55c1ca3fe7d2db8f", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/p"}, "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-f9df8886027403ad", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/vendas-extr"}, "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-9dcfaa3627f73f25", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/financeiro-"}, "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-d0ac4732b45ca7f2", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/f"}, "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-79ad37dc233c90ad", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/compras-pag"}, "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-e682ebe1400f34d0", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/u"}, "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-9b810a6821008631", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/"}, "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-77e1e0f54fea3244", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/u"}, "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-5e6cce9c0a43fbdb", "name": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bu", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design Sy"}, "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-d75288442855b9be", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/u"}, "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-81763a6255848a26", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/p"}, "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-cecf357f7b5cedbb", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/p"}, "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-0471b91923b074ca", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/p"}, "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-4899c4c4ac1cb28a", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/p"}, "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-407facade9d30661", "name": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bu", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patc"}, "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-8308cf642969b4e5", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/p"}, "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-2d9b3354c32f4b4f", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/producao-page.jsx:294"}, "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-a0acc81d215b33c7", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/financeiro-app.jsx:140"}, "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-764f7de52d07fd67", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/boleto-contas-app.jsx:333"}, "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-2bea683f3519e853", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/produto-app.jsx:96"}, "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-418f6c1c3bdd2786", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/vendas-extras.jsx:442"}, "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-b33bb304429777dd", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/financeiro-telas-extras.jsx:269"}, "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-27f3729aa406c7f8", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/financeiro-telas-extras.jsx:151"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a9cf8b1ae67c4ab4", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/Fluxo/Index"}, "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-06514e5686824152", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/I"}, "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-ccbc1bc5f1625d6a", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/Conciliacao"}, "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-969a0599edb819b4", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Produto/Unificado/Inde"}, "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-afea61431d257078", "name": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bu", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Produto/Unificado/Index.tsx:350"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-340685876024bbc2", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/prototipos/produto/produto-app.jsx:96"}, "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-663b15c3735a4580", "name": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/p", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/vendas-page.jsx:346"}, "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-63a850c9a1c15199", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-app.jsx: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-2bcdf15c4ded33b6", "name": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/p", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-app.jsx:748"}, "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-27b44065db1295b0", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/vendas-extras.jsx:482"}, "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-22883fa75a2ad1ff", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-telas-extras.jsx:300"}, "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-6d76ebec8082bc5a", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-telas-extras.jsx:180"}, "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-a8bec42677b43284", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/Fluxo/Index.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-2bd5ee453e1fa2fd", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/Index.tsx:180"}, "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-84267fc2e805c11a", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/Conciliacao/Index.tsx:112"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-225dcc9b39c5fa4d", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Produto/Unificado/Index.tsx:256"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-210a9d0822ca30dd", "name": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bu", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Produto/Unificado/Index.tsx:350"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-155287b2c15b1b39", "name": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/p", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-refino-kb-9.75/vendas-page.jsx:346"}, "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-9be8b9c13d94c657", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-refino-kb-9.75/vendas-extras.jsx:438"}, "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-670f0e7818035343", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/prototipos/produto/produto-app.jsx:96"}, "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-f0eb5b52869acf4d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/mockup-pages.jsx:18"}, "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-c4231611d77656f5", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/producao-page.jsx:294"}, "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-443e518e0ee1d88f", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-t", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-trouble-lib.jsx:146"}, "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-c22560a12bd6b802", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-t", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-trouble-editor.jsx:74"}, "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-274e4ae4537d7d59", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-p", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-page.jsx:1208"}, "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-58b663521adbe3d0", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-page.jsx:1237"}, "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-4711173a55fc5f13", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/financeiro-app.jsx:181"}, "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-740564ad5d4badfd", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/mock", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/mockup-bodies.js:4"}, "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-0ca0919a96bd35dd", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/boleto-contas-app.jsx:359"}, "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-5284229510f3c3e7", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/produto-app.jsx:96"}, "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-0c6fc5641e4050b0", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbo", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-v2-extras.jsx:254"}, "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-5c58f58c69b9f085", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-i", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-images-print.jsx:170"}, "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-bfaa818d610b4232", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vend", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vendas-extras.jsx:442"}, "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-1fa4eba0c5058ee8", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbo", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-v2-ai.jsx:102"}, "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-314cf1011f097cb9", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-v2-ai.jsx:112"}, "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-be5dc4137d9dd634", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbo", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-v2-cur.jsx:249"}, "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-c0be986095b265b0", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbo", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-v2-out.jsx:124"}, "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-38b49acb9a9c4a38", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/fina", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/financeiro-telas-extras.jsx:271"}, "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-293f07680ff50533", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/financeiro-telas-extras.jsx:153"}, "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-7ac41baf56061424", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-e", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-extras.jsx: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-180dd4f037368ab6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-extras.jsx:137"}, "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-0465b2f555a68ac2", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/comp", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/compras-page.jsx:218"}, "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-616ef24c4c32e703", "name": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-p", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-paths.jsx:141"}, "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-61d116bf4f25a6f8", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/Fluxo/Index.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-297526a69e831aed", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/Index.tsx:180"}, "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-e6f2ffbc3cd0be8e", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/Conciliacao/Index.tsx:112"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a76b4b2c533c9b2e", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Produto/Unificado/Index.tsx:256"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9c28cc7d1b482f11", "name": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Produto/Unificado/Index.tsx:350"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-516811f9b40b17ff", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/prototipos/produto/produto-app.jsx:96"}, "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-8af61dc92cf50d35", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/mockup-p", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/mockup-pages.jsx:18"}, "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-5ab439b7fedaec7b", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/producao-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/producao-page.jsx:294"}, "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-1d0e51988218666a", "name": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-trouble-lib.jsx:", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-trouble-lib.jsx:146"}, "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-f3cd557525325efd", "name": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-trouble-editor.j", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-trouble-editor.jsx:74"}, "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-2e171764ca7bc08a", "name": "Stray `console.log` in TS/JS \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-page.jsx:157", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-page.jsx:157"}, "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-8a239e649bfbe831", "name": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-page.jsx:1208", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-page.jsx:1208"}, "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-ee84608396069c4f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-page.", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-page.jsx:1237"}, "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-562523fa71fce250", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeir", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-app.jsx: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-d1634c584718ecbb", "name": "Stray `console.log` in TS/JS \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-app.jsx:748", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-app.jsx:748"}, "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-a4ec3cdf7de505d8", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-sells-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-sells-cobranca-preview.jsx:270"}, "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-a109fd9b3112c9a2", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-paymen", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-payment-gateways-page.jsx:219"}, "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-e73435485c689831", "name": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/mockup-bodies.js:4", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/mockup-bodies.js:4"}, "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-975e0ce166038983", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/boleto-co", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/boleto-contas-app.jsx:359"}, "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-c637f613af747c87", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-cobran", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-cobranca-page.jsx:290"}, "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-80a46e1ed28cc58b", "name": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-extras.jsx", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-extras.jsx:254"}, "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-bc1ef43198da850e", "name": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-images-print.jsx", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-images-print.jsx:170"}, "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-c51402e006c27355", "name": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-extras.jsx:5", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-extras.jsx:538"}, "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-cf6d5bd719691dda", "name": "Stray `console.log` in TS/JS \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-extras.jsx:285", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-extras.jsx:285"}, "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-db85e9805c499320", "name": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-ai.jsx:102", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-ai.jsx:102"}, "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-a14fb103eb381652", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-ai.jsx:112"}, "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-d83e2e105757ca39", "name": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-cur.jsx:24", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-cur.jsx:249"}, "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-61831e1771007bb7", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-shared", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-shared.jsx: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-f8dc6d79926274d4", "name": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-out.jsx:12", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-out.jsx:124"}, "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-82b464cb2c5c8c82", "name": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-telas-ex", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-telas-extras.jsx:300"}, "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-dabadbca47cb2e46", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeir", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-telas-extras.jsx:180"}, "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-11691ba6213ad2fa", "name": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-extras.jsx:128", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-extras.jsx: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-5be752f7f6503428", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-extra", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-extras.jsx:137"}, "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-e34e36687f6e3cd6", "name": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/compras-page.jsx:21", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/compras-page.jsx:218"}, "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-dbeb95e2c081e4d3", "name": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-paths.jsx:141", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-paths.jsx:141"}, "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-aa39706f9d2abd48", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-ui/cobranca-page.jsx:247"}, "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-d8840aade283086f", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-ui/payment-gateways-page.jsx:174"}, "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-9f18bee9388a5db7", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-ui/sells-emitir-cobranca-modal.jsx:270"}, "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-2596923341f1ec52", "name": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-ui/shared.jsx:274"}, "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-1fe71f65a412c493", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/prototipos/clientes/clientes-975.jsx:280", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/prototipos/clientes/clientes-975.jsx:280"}, "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-ce3a82b8517be0cf", "name": "Icon-only button without accessible name \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-cur.jsx:249", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-cur.jsx:249"}, "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-a5ab338b9a53c33b", "name": "Icon-only button without accessible name \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-out.jsx:124", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-out.jsx:124"}, "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-de2ee72940abccca", "name": "Icon-only button without accessible name \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-ai.jsx:102", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-ai.jsx:102"}, "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-ef9f3313dde06645", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-ai.jsx:112", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-ai.jsx:112"}, "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-4cdc6bf5caba9db2", "name": "Icon-only button without accessible name \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-extras.jsx:254", "shortDescription": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-extras.jsx:254"}, "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-0109685827f0134d", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/CommandPalette.tsx:197", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/CommandPalette.tsx:197"}, "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-e5e8270642ca465b", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/shared/PageHeaderModuleNav.tsx:96", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/shared/PageHeaderModuleNav.tsx:96"}, "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-b74dbc95ff8cc094", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/shared/PageHeader.tsx:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/shared/PageHeader.tsx:74"}, "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-238d80c2f1124d29", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Components/shared/DataTable.tsx:214", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Components/shared/DataTable.tsx:214"}, "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-7cb5a6c59ce1c6be", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/shared/KpiCard.tsx:117", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/shared/KpiCard.tsx:117"}, "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-df0aa424a3fc1bac", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/shared/VendaDerivadaCard.tsx:296", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/shared/VendaDerivadaCard.tsx:296"}, "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-5af48d7511d57273", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Components/cockpit/Sidebar.tsx:394", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Components/cockpit/Sidebar.tsx:394"}, "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-0056824f72072ba1", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/board/TaskCard.tsx:66", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/board/TaskCard.tsx:66"}, "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-9864d647746813b9", "name": "\"active\" state uses light bg in a dark theme \u2014 resources/js/Pages/governance/ModuleGrades/Index.tsx:258", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 resources/js/Pages/governance/ModuleGrades/Index.tsx:258"}, "fullDescription": {"text": "A ternary like `active ? 'bg-white' : '...'` (or bg-gray-100/200) on a dark theme produces jarring white pills. Use a dark-emphasized active state instead \u2014 border + ring or slightly brighter dark bg. Example: `active ? 'bg-gray-800 border-gray-500 ring-1 ring-blue-500/30' : '\u2026'`.\n\nWhy: P-E in CHECKLIST.md \u2014 light bg in a dark theme is a class of regression.\nRule id: fq.active-light-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-94bd7008e12e6a5b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/TransactionPayment/Index.tsx:293", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/TransactionPayment/Index.tsx:293"}, "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-f9f985ec995ab49d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/TransactionPayment/Show.tsx:119", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/TransactionPayment/Show.tsx:119"}, "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-0fe13d3b6cab6d47", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Todo/Index.tsx:398", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Todo/Index.tsx:398"}, "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-7bc4fd17da9d7593", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Todo/Show.tsx:250", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Todo/Show.tsx:250"}, "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-69012016b63a728d", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Essentials/Todo/Show.tsx:153", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Essentials/Todo/Show.tsx:153"}, "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-1c2ca529c83762b6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Todo/Show.tsx:327", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Todo/Show.tsx:327"}, "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-7693aa7c271ea233", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Knowledge/Index.tsx:121", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Knowledge/Index.tsx:121"}, "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-e2e8cb44b46dfef1", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Knowledge/Index.tsx:150", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Knowledge/Index.tsx:150"}, "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-fddc1f72a02cd9f3", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Knowledge/Show.tsx:89", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Knowledge/Show.tsx:89"}, "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-b6d96afdb3f8405e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Knowledge/Show.tsx:163", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Knowledge/Show.tsx:163"}, "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-e437aa0d362bdc8e", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Reminders/Index.tsx:161", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Reminders/Index.tsx:161"}, "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-d0f1f9c602ed60cd", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Holidays/Index.tsx:262", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Holidays/Index.tsx:262"}, "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-ac40786ade9ba867", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Essentials/Messages/Index.tsx:73", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Essentials/Messages/Index.tsx:73"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8b2dee9ee8f84b8c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Messages/Index.tsx:212", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Messages/Index.tsx:212"}, "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-6908490e0b56788f", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Documents/Index.tsx:307", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Documents/Index.tsx:307"}, "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-d123f5d058cb26b9", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Essentials/Documents/Index.tsx:88", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Essentials/Documents/Index.tsx:88"}, "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-83808a49a4411700", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Site/Page.tsx:69", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Site/Page.tsx:69"}, "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-ec41b39808fcae12", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Site/BlogPost.tsx:80", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Site/BlogPost.tsx:80"}, "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-e6a44cd4564de4ab", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Home/Index.tsx:79", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Home/Index.tsx:79"}, "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-9cb1e793721fdec2", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Settings/PaymentGateways/Index.tsx:275", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Settings/PaymentGateways/Index.tsx:275"}, "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-6dfe7f8e318d7cae", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Settings/PaymentGateways/CnabRetorno.tsx:195", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Settings/PaymentGateways/CnabRetorno.tsx:195"}, "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-5b111fde8c457467", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Settings/PaymentGateways/_components/atoms-setti", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Settings/PaymentGateways/_components/atoms-settings.tsx:76"}, "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-a4b32658aa3d0d31", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Settings/PaymentGateways/_components/DrawerGatew", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Settings/PaymentGateways/_components/DrawerGateway.tsx:247"}, "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-f65b23052de1c313", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/MemCofre/Chat.tsx:199", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/MemCofre/Chat.tsx:199"}, "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-808e7ec7f3162e2c", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/MemCofre/Memoria.tsx:190", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/MemCofre/Memoria.tsx:190"}, "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-297eb97a2a1d3b2d", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/MemCofre/Dashboard.tsx:334", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/MemCofre/Dashboard.tsx:334"}, "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-700fb16809c7035d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/MemCofre/Inbox.tsx:361", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/MemCofre/Inbox.tsx:361"}, "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-a8bd90da90ef8f28", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/ProjectMgmt/Backlog/Index.tsx:352", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/ProjectMgmt/Backlog/Index.tsx:352"}, "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-a5a96ab7e17f4faa", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:529", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:529"}, "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-a18bcaedaebfa486", "name": "React Flow <MiniMap> without dark background \u2014 resources/js/Pages/ads/Admin/Graph.tsx:206", "shortDescription": {"text": "React Flow <MiniMap> without dark background \u2014 resources/js/Pages/ads/Admin/Graph.tsx:206"}, "fullDescription": {"text": "A bare <MiniMap> renders with the vendor's white default in dark themes. Wrap the canvas in a class that overrides `.react-flow__minimap` background, or pass an explicit `style`/`maskColor`/`bgColor`.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.minimap.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-90fbf0068a3d3a88", "name": "React Flow <Controls> without dark theming \u2014 resources/js/Pages/ads/Admin/Graph.tsx:205", "shortDescription": {"text": "React Flow <Controls> without dark theming \u2014 resources/js/Pages/ads/Admin/Graph.tsx:205"}, "fullDescription": {"text": "`<Controls>` ships with white buttons. Override `.react-flow__controls` and `.react-flow__controls-button` in your stylesheet or pass a styled wrapper.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.controls.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6109c047d48e67e6", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 resources/js/Pages/ads/Admin/Graph.tsx:164", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 resources/js/Pages/ads/Admin/Graph.tsx:164"}, "fullDescription": {"text": "React Flow edge labels render with a white rectangle behind the text by default, which scatters bright boxes across a dark canvas. Either drop the label, or override `.react-flow__edge-textbg` and `.react-flow__edge-text` in your stylesheet.\n\nWhy: P-H in CHECKLIST.md \u2014 vendor edge labels bleed white through a dark canvas.\nRule id: fq.edge-label.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-851f0f8f6538618f", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/ads/Admin/Confidence.tsx:212", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/ads/Admin/Confidence.tsx:212"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-308e52d994b2251c", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/ads/Admin/Tools.tsx:109", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/ads/Admin/Tools.tsx:109"}, "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-56fbf87f80bc0f1d", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/ContactPickerModal.tsx:169", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/ContactPickerModal.tsx:169"}, "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-8c63c74c830df9f8", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/ConversationThread.tsx:594", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/ConversationThread.tsx:594"}, "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-25ce26822be64e17", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/TemplatePicker.tsx:133", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/TemplatePicker.tsx:133"}, "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-6cb7022ed7e6573e", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/ConversationSidebar.tsx:245", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/ConversationSidebar.tsx:245"}, "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-57110d16e6385fd7", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/CustomerMemoryBlock.tsx:227", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/CustomerMemoryBlock.tsx:227"}, "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-db49a8f9b7a2a9cc", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/ConversationList.tsx:512", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/ConversationList.tsx:512"}, "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-e7ba665532f408b5", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/ProvaViva.tsx:565", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/ProvaViva.tsx:565"}, "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-1381b376b963a715", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Dashboard/Index.tsx:228", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Dashboard/Index.tsx:228"}, "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-5237fdbd0de35ee5", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Financeiro/Dashboard/Index.tsx:401", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Financeiro/Dashboard/Index.tsx:401"}, "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-d05d4d400ed7a704", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/_cowork-bundle/financeiro-app.jsx:196", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/_cowork-bundle/financeiro-app.jsx: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-686c703f4a2fcd1c", "name": "Stray `console.log` in TS/JS \u2014 resources/js/Pages/Financeiro/_cowork-bundle/financeiro-app.jsx:748", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/js/Pages/Financeiro/_cowork-bundle/financeiro-app.jsx:748"}, "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-c4c3bab4f0e13572", "name": "Icon-only button without accessible name \u2014 resources/js/Pages/Financeiro/_cowork-bundle/financeiro-telas-extras.jsx:300", "shortDescription": {"text": "Icon-only button without accessible name \u2014 resources/js/Pages/Financeiro/_cowork-bundle/financeiro-telas-extras.jsx:300"}, "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-c5a7a2f258a75a6d", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/_cowork-bundle/financeiro-telas-extra", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/_cowork-bundle/financeiro-telas-extras.jsx:180"}, "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-a6e6ac968d5b7bd3", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Fluxo/Index.tsx:296", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Fluxo/Index.tsx:296"}, "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-5f9f9e2d082f29d9", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Cobranca/Index.tsx:376", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Cobranca/Index.tsx:376"}, "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-f82532fb9de4173b", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Cobranca/_components/atoms.tsx:158", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Cobranca/_components/atoms.tsx:158"}, "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-02bcb909fe5364d3", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Cobranca/_components/DrawerCobranca.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Cobranca/_components/DrawerCobranca.tsx:51"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9fe9143d0a3ecb72", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Cobranca/_components/SheetRemessaReto", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Cobranca/_components/SheetRemessaRetorno.tsx:64"}, "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-1d0ba2fc9cd26fab", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Impostos/Index.tsx:128", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Impostos/Index.tsx:128"}, "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-a056126fb91b5fd7", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Advisor/Dashboard.tsx:61", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Advisor/Dashboard.tsx:61"}, "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-982dd405d30a478d", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Unificado/Index.tsx:1064", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Unificado/Index.tsx:1064"}, "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-cd0c307f4a90b531", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Unificado/_components/ClienteCombobox", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Unificado/_components/ClienteCombobox.tsx:153"}, "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-856eedf4c8810d2b", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Unificado/_components/PlanoContaCombo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Unificado/_components/PlanoContaCombobox.tsx:154"}, "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-ea247ccd6f76eaf2", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Conciliacao/Index.tsx:266", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Conciliacao/Index.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-7cf2633fb03fa83e", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/RecurringBilling/Index.tsx:794", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/RecurringBilling/Index.tsx:794"}, "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-1b8e29e2da92295c", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/RecurringBilling/Configuracoes/Index.tsx:512", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/RecurringBilling/Configuracoes/Index.tsx:512"}, "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-b13f2d7d80a4c4ce", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/RecurringBilling/Faturas/Index.tsx:646", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/RecurringBilling/Faturas/Index.tsx:646"}, "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-33a43017868f5c90", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/RecurringBilling/_components/CmdPalette.tsx:126", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/RecurringBilling/_components/CmdPalette.tsx:126"}, "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-0bad3a2082aa0e64", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/Index.tsx:1266", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/Index.tsx:1266"}, "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-f857cc76e1dd3c13", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Cliente/Index.tsx:2256", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Cliente/Index.tsx:2256"}, "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-d3f67544a2190282", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/Map.tsx:112", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/Map.tsx:112"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37873848be52e5da", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/Show.tsx:388", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/Show.tsx:388"}, "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-29c2a6716c5c1653", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_form/ClienteRail.tsx:57", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_form/ClienteRail.tsx:57"}, "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-833c4d82862a9fca", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_show/ContactPicker.tsx:123", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_show/ContactPicker.tsx:123"}, "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-0ffd9a02eabb0a02", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_show/DocumentsTab.tsx:333", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_show/DocumentsTab.tsx:333"}, "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-e080633073ff564f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Cliente/_show/SalesTab.tsx:393", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Cliente/_show/SalesTab.tsx:393"}, "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-7834214fa995cf4f", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_drawer/AuditoriaTab.tsx:192", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_drawer/AuditoriaTab.tsx:192"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2df7acc9f81e190", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:312", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:312"}, "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-5efafb79de2f3515", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_components/KpiStripClickable.tsx:221", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_components/KpiStripClickable.tsx:221"}, "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-f6eb61ab57a01eed", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Repair/JobSheet/AddParts.tsx:195", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Repair/JobSheet/AddParts.tsx:195"}, "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-7a1009e3ac284c1a", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/Index.tsx:309", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/Index.tsx:309"}, "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-72f73462158b8449", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ComposerV", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ComposerV4.tsx:580"}, "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-864ab07145b29ee1", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ComposerV4.tsx:19", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ComposerV4.tsx:19"}, "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-a7c7e07f4c40b6f7", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ChannelsD", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ChannelsDrawer.tsx:102"}, "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-4396a056ccd5fbe8", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/QueuesShe", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/QueuesSheet.tsx:144"}, "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-3ab5f892f4998821", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ContextSi", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ContextSidebarV4.tsx:203"}, "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-cff1401074a26b56", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/Conversat", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ConversationListV4.tsx:459"}, "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-837076df16547d18", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/Conversat", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ConversationThreadV4.tsx:138"}, "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-4f7aa53079d49a96", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/NewConver", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/NewConversationDialog.tsx:131"}, "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-3e242ad492fc04b5", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/Channels/Index.tsx:523", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/Channels/Index.tsx:523"}, "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-b89dec74f36242af", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/Channels/Show.tsx:443", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/Channels/Show.tsx:443"}, "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-c465ac514d29d53d", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/team-mcp/CcSessions/Index.tsx:345", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/team-mcp/CcSessions/Index.tsx:345"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f5ef625052026b2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/team-mcp/CcSessions/Index.tsx:334", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/team-mcp/CcSessions/Index.tsx:334"}, "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-1f6ecb09145b87cc", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/team-mcp/Tasks/Index.tsx:185", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/team-mcp/Tasks/Index.tsx:185"}, "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-e3583c981e7dc63d", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviPhoto", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviPhotoGrid.tsx:295"}, "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-e7258899adc1545c", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/LaudoPho", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/LaudoPhotoSection.tsx:270"}, "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-553c5d71266e1828", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DragConf", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DragConfirmDialog.tsx:101"}, "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-73c8b0e067236dc8", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceO", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceOrderRichSheet.tsx:371"}, "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-16691e9ee0c6f0fc", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceOrderRichSheet.ts", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceOrderRichSheet.tsx:186"}, "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-33f11fd9ccdff200", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviInlin", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviInlineEditor.tsx:590"}, "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-f96384f715a7a5da", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx:468", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx:468"}, "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-e4f67fc58fd696e0", "name": "\"active\" state uses light bg in a dark theme \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx:752", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx:752"}, "fullDescription": {"text": "A ternary like `active ? 'bg-white' : '...'` (or bg-gray-100/200) on a dark theme produces jarring white pills. Use a dark-emphasized active state instead \u2014 border + ring or slightly brighter dark bg. Example: `active ? 'bg-gray-800 border-gray-500 ring-1 ring-blue-500/30' : '\u2026'`.\n\nWhy: P-E in CHECKLIST.md \u2014 light bg in a dark theme is a class of regression.\nRule id: fq.active-light-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a003f545d8d84904", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrd", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderItemRow.tsx:83"}, "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-2ca5a8f921069c0a", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/DviBudgetS", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/DviBudgetSection.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-48992679df75e3b7", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/Serv", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/ServiceOrderKanbanCard.tsx:252"}, "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-420410115c7e7bd8", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/Boar", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/BoardKpiCard.tsx:31"}, "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-1ed6b84bf11a4b15", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/Serv", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/ServiceOrderKanbanColumn.tsx:65"}, "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-0ebd984aaa671410", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/Index.tsx:394", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/Index.tsx:394"}, "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-0a8cd3b50af1bbd7", "name": "\"active\" state uses light bg in a dark theme \u2014 resources/js/Pages/Produto/Index.tsx:372", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 resources/js/Pages/Produto/Index.tsx:372"}, "fullDescription": {"text": "A ternary like `active ? 'bg-white' : '...'` (or bg-gray-100/200) on a dark theme produces jarring white pills. Use a dark-emphasized active state instead \u2014 border + ring or slightly brighter dark bg. Example: `active ? 'bg-gray-800 border-gray-500 ring-1 ring-blue-500/30' : '\u2026'`.\n\nWhy: P-E in CHECKLIST.md \u2014 light bg in a dark theme is a class of regression.\nRule id: fq.active-light-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e68cc107cfde8bd3", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/SellingPrices.tsx:341", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/SellingPrices.tsx:341"}, "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-d9c2ef75f5aa4076", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/Edit.tsx:140", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/Edit.tsx:140"}, "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-f9a19c9c94e26549", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/BulkEdit.tsx:224", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/BulkEdit.tsx:224"}, "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-0b3fedaed473e726", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/Show.tsx:80", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/Show.tsx:80"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b8018b89ffaf8a42", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/Unificado/Index.tsx:292", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/Unificado/Index.tsx:292"}, "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-22fed1d3f59099bb", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Auditoria/Index.tsx:203", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Auditoria/Index.tsx:203"}, "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-b35795281fd89259", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Nfse/Index.tsx:165", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Nfse/Index.tsx:165"}, "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-3ffb82ff7a6aa1a3", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Nfse/Emitir.tsx:357", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Nfse/Emitir.tsx:357"}, "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-a9df70dc117d3f01", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Nfse/Show.tsx:262", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Nfse/Show.tsx:262"}, "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-dd2b868601270015", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/GovernanceV4Dashboard.tsx:140", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/GovernanceV4Dashboard.tsx:140"}, "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-92dc5ae6c876efdd", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/ScreenReviewDashboard.tsx:226", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/ScreenReviewDashboard.tsx:226"}, "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-838a8fc1c6b9b371", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/CommandPaletteV4.tsx:182", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/CommandPaletteV4.tsx:182"}, "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-bcac275c6a22600b", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/BucketSidebar.tsx:110", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/BucketSidebar.tsx:110"}, "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-bf617e01874b726f", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ModuleList.tsx:112", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ModuleList.tsx:112"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3e3b97f4e1db5b4c", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ScreenList.tsx:105", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ScreenList.tsx:105"}, "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-bb3db145fa3f7a6f", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ScreenReviewSidebar.tsx:108", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ScreenReviewSidebar.tsx:108"}, "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-4097df0aa75cf81b", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/AiSuggestionPanel.tsx:81", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/AiSuggestionPanel.tsx:81"}, "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-dc8420e170a5c9cc", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ModuleReader.tsx:106", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ModuleReader.tsx:106"}, "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-b7201f1996880bf3", "name": "Icon-only button without accessible name \u2014 resources/js/Pages/Admin/_components/WidgetMutations.tsx:162", "shortDescription": {"text": "Icon-only button without accessible name \u2014 resources/js/Pages/Admin/_components/WidgetMutations.tsx:162"}, "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-e1b6ffce4a24ae63", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ReviewReader.tsx:88", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ReviewReader.tsx:88"}, "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-c9c9bb3bf96fcf14", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/NfeBrasil/Transactions/NfceStatus.tsx:213", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/NfeBrasil/Transactions/NfceStatus.tsx:213"}, "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-cab0a09d392f08f4", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/NfeBrasil/Manifestacao/_components/LinkedItens.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/NfeBrasil/Manifestacao/_components/LinkedItens.tsx:52"}, "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-b94d4ee5f52e6b66", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Jana/Pro.tsx:100", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Jana/Pro.tsx:100"}, "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-e51a487e72d60c46", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Jana/Cockpit.tsx:433", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Jana/Cockpit.tsx:433"}, "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-d85ab0de19622a44", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Jana/Cockpit.tsx:16", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Jana/Cockpit.tsx:16"}, "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-bf731c69542b5f64", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Sells/_components/CustomerSearchAutocomplete.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Sells/_components/CustomerSearchAutocomplete.tsx:314"}, "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-535dbf437210a4c8", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Sells/_components/CobrancaDrawer.tsx:129", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Sells/_components/CobrancaDrawer.tsx:129"}, "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-e71376f400a3029a", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Sells/_components/ProductLineCard.tsx:91", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Sells/_components/ProductLineCard.tsx:91"}, "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-729ba4c349166df4", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:677"}, "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-a48b68ba4f9e0e7d", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:26", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:26"}, "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-144d906dc7939ea9", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Compras/components/AcoesDropdown.tsx:222", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Compras/components/AcoesDropdown.tsx:222"}, "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-4600e9200f777f9e", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Compras/components/VisibilidadeColunas.tsx:78", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Compras/components/VisibilidadeColunas.tsx:78"}, "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-92897b8a5dca1037", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/Index.tsx:433", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/Index.tsx:433"}, "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-f90483461efb722b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/kb/Index.tsx:421", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/kb/Index.tsx:421"}, "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-ab6cc47bf0fc2c4b", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/kb/Graph.tsx:85", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/kb/Graph.tsx:85"}, "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-8e919b023ccb31fe", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/kb/Index.v2.tsx:75", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/kb/Index.v2.tsx:75"}, "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-30bc28322cc1af2e", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/kb/_lib/graphLayout.ts:214", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/kb/_lib/graphLayout.ts:214"}, "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-ccb11c08dbb968bf", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/GraphNodeDetail.tsx:84", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/GraphNodeDetail.tsx:84"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9bedd5388beaea77", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/HealthPanel.tsx:161", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/HealthPanel.tsx:161"}, "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-b169f06e0c0fad63", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/NodeList.tsx:76", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/NodeList.tsx:76"}, "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-07a5635570ca1c47", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/KbCommandPalette.tsx:125", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/KbCommandPalette.tsx:125"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fed4a7d68faceea7", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/CategorySidebar.tsx:147", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/CategorySidebar.tsx:147"}, "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-48e5af7a2db96db2", "name": "React Flow <Controls> without dark theming \u2014 resources/js/Pages/kb/_components/GraphCanvas.tsx:99", "shortDescription": {"text": "React Flow <Controls> without dark theming \u2014 resources/js/Pages/kb/_components/GraphCanvas.tsx:99"}, "fullDescription": {"text": "`<Controls>` ships with white buttons. Override `.react-flow__controls` and `.react-flow__controls-button` in your stylesheet or pass a styled wrapper.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.controls.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ac04b3203dac7463", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Ponto/Dashboard/Index.tsx:309", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Ponto/Dashboard/Index.tsx:309"}, "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-a18af0a178508902", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Ponto/Configuracoes/Reps.tsx:48", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Ponto/Configuracoes/Reps.tsx:48"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4115ebccce7822f6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Colaboradores/Index.tsx:179", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Colaboradores/Index.tsx:179"}, "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-9724906240682ac6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Importacoes/Index.tsx:152", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Importacoes/Index.tsx:152"}, "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-11add3d13f87415b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Escalas/Index.tsx:133", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Escalas/Index.tsx:133"}, "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-5a8dc1a71a2b73aa", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Aprovacoes/Index.tsx:466", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Aprovacoes/Index.tsx:466"}, "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-d40df4744fb8dfd6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Intercorrencias/Index.tsx:226", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Intercorrencias/Index.tsx:226"}, "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-9251e4eab48b7f2d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/BancoHoras/Index.tsx:156", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/BancoHoras/Index.tsx:156"}, "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-8827d2f2e5870a85", "name": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Ponto/BancoHoras/Show.tsx:64", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Ponto/BancoHoras/Show.tsx:64"}, "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-aa5b2c3c634b070d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Espelho/Index.tsx:140", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Espelho/Index.tsx:140"}, "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-ef31c18e215c6606", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Ponto/_components/ActivityFeed.tsx:117", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Ponto/_components/ActivityFeed.tsx:117"}, "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-8454fc79d78f8970", "name": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Ponto/_components/AlertInbox.tsx:106", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Ponto/_components/AlertInbox.tsx:106"}, "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-6ce131abf4ce88df", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/js/AdminLTE-app.js:690", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/js/AdminLTE-app.js:690"}, "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-41b670d8903d0c21", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/js/pages/dashboard.js:204", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/js/pages/dashboard.js: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-eaed9341bc3c2216", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js:2", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js:2"}, "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-ecd644a5f18a3c78", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js:", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js:1"}, "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-1f26dcc50574d2dd", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js:182", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js:182"}, "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-ec7c93e02a74ab5b", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/fullcalendar/fullcalendar.js:208", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/fullcalendar/fullcalendar.js:208"}, "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-18160038daf07c95", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/DataTables/JSZip-2.5.0/jszip.js:6190", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/DataTables/JSZip-2.5.0/jszip.js:6190"}, "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-b0e5978ed9265e32", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/JSZip-2.5.0/jszip.js:2915", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/JSZip-2.5.0/jszip.js:2915"}, "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-4f7f9142662cee88", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables.min", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables.min.js:74"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a88b23a87291777a", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables.js:", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables.js:6469"}, "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-17763905b5d2c3c2", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.min.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.min.js:5"}, "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-fe42d88d5e4c74cd", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.js:123", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.js:1236"}, "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-c7f47bff5f34a27e", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.js:94", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.js:94"}, "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-0f8bacbf6e25a4a2", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.html5.js:104", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.html5.js:1043"}, "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-d44eee3a657ba5ba", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.js:425", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.js:425"}, "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-a40f42d35660dc36", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.regex.extensions.js:126", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.regex.extensions.js:126"}, "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-a89235753a9931be", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.phone.extensions.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.phone.extensions.js:14"}, "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-24ec5087a37ebfbc", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.js:327", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.js:327"}, "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-0886909469b6c151", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.numeric.extensions.j", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.numeric.extensions.js:27"}, "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-85bbcf28833f7a50", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jKanban/jKanbanBoard.js:431", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jKanban/jKanbanBoard.js:431"}, "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-fdfd21ed21ca6c4a", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/bootstrap/js/bootstrap.js:1576", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/bootstrap/js/bootstrap.js:1576"}, "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-a0ff20c57ab6fbc2", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/fullcalendar/fullcalendar.js:913", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/fullcalendar/fullcalendar.js:913"}, "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-adedd95490922305", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/bootstrap-tour/bootstrap-tour.min.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/bootstrap-tour/bootstrap-tour.min.js:22"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-328dad0bb254e21b", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/bootstrap-fileinput/fileinput.min.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/bootstrap-fileinput/fileinput.min.js:10"}, "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-d324b9ce1fe03846", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/test/test.js:841", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/test/test.js:841"}, "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-6510848cee95b223", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.mockjax-1.5.3.js:216", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.mockjax-1.5.3.js:216"}, "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-e3e53fe02c5364db", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.mockjax-1.5.3.js:546", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.mockjax-1.5.3.js:546"}, "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-840a5e2b25aa8e17", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.mockjax-2.2.1.js:349", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.mockjax-2.2.1.js:349"}, "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-624f0e6c177fc445", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:3157", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:3157"}, "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-406031643aa7bef8", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.form.js:193", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.form.js:193"}, "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-52bd98f24154c094", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.form.js:1114", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.form.js:1114"}, "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-d558482c4eeaaa0b", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:2889", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:2889"}, "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-d3c55e6662422f94", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js:798", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js:798"}, "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-5cfc5f609c6b1587", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/src/core.js:1428", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/src/core.js:1428"}, "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-e084fa5b6294486c", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/jquery-validation-1.16.0/src/core.js:762", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/jquery-validation-1.16.0/src/core.js:762"}, "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-d46c09f98b59862b", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/src/additional/strippedminlength.js:1", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/src/additional/strippedminlength.js:1"}, "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-021473282641e58a", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 resources/plugins/jquery-ui/jquery-ui.min.js", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 resources/plugins/jquery-ui/jquery-ui.min.js:9"}, "fullDescription": {"text": "React Flow edge labels render with a white rectangle behind the text by default, which scatters bright boxes across a dark canvas. Either drop the label, or override `.react-flow__edge-textbg` and `.react-flow__edge-text` in your stylesheet.\n\nWhy: P-H in CHECKLIST.md \u2014 vendor edge labels bleed white through a dark canvas.\nRule id: fq.edge-label.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3003007298b3358f", "name": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery.steps/jquery.steps.js:600", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery.steps/jquery.steps.js:600"}, "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-e48cbefc9687b56e", "name": "Stray `console.log` in TS/JS \u2014 resources/plugins/toastr/toastr.min.js:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/toastr/toastr.min.js:6"}, "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-fd7f71395c204ac5", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-dxt.js:284", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-dxt.js:284"}, "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-ebccfe70c4070aee", "name": "Stray `console.log` in TS/JS \u2014 scripts/cc-watcher/index.js:281", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cc-watcher/index.js:281"}, "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-503a347d1733eb03", "name": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/brain-a-daemon.js:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/brain-a-daemon.js:50"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fdf9d8a208cd9820", "name": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/smoke-e2e.js:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/smoke-e2e.js:24"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5dfc05c58a20f609", "name": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/smoke-watchers.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/smoke-watchers.js:16"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-87d0be7f29cad3ae", "name": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/smoke-test.js:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/smoke-test.js:24"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e3f316b04f61c57e", "name": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/watchers/git-watcher.js:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/watchers/git-watcher.js:24"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6a59f0bd012a1c7b", "name": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/watchers/remote-log-watcher.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/watchers/remote-log-watcher.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1bde6d9c4f893fc7", "name": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/watchers/log-watcher.js:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/watchers/log-watcher.js:25"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7e1b6a24e72e198c", "name": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/watchers/remote-git-watcher.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/watchers/remote-git-watcher.js: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-cc6aeab3202dea80", "name": "Stray `console.log` in TS/JS \u2014 doc/assets/frontend/default/js/tinymce.min.js:2", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/frontend/default/js/tinymce.min.js:2"}, "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-120c2be465ed502c", "name": "Stray `console.log` in TS/JS \u2014 doc/assets/frontend/default/js/toastr.js:235", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/frontend/default/js/toastr.js:235"}, "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-440742867cc5b2db", "name": "Stray `console.log` in TS/JS \u2014 doc/assets/frontend/default/js/jwplayer.js:2", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/frontend/default/js/jwplayer.js:2"}, "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-537d88f6d3b2bcc0", "name": "Stray `console.log` in TS/JS \u2014 doc/assets/global/toastr/toastr.min.js:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/global/toastr/toastr.min.js:6"}, "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-d19c53a1ba34e9de", "name": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/app.min.js:1", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/app.min.js:1"}, "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-c363a8861b6c93e2", "name": "TODO/FIXME marker in shipping code \u2014 doc/assets/backend/js/app.js:753", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 doc/assets/backend/js/app.js:753"}, "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-ade61775aa7d9662", "name": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/app.js:19808", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/app.js:19808"}, "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-9724e11990a50caf", "name": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.google-maps.js:1", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.google-maps.js:1"}, "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-9ad6261a97a1035b", "name": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.apex-column.js:1", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.apex-column.js:1"}, "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-c90564aabdac63e3", "name": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.britechart.js:1", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.britechart.js:1"}, "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-e36ed1894af595bb", "name": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.apex-area.js:1", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.apex-area.js:1"}, "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-edf8bb3d84f3a672", "name": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.sellers.js:1", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.sellers.js:1"}, "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-7cfc90dd80f3f454", "name": "Stray `console.log` in TS/JS \u2014 doc/assets/payment/js/stripe.js:4", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/payment/js/stripe.js:4"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e6c19b77c6a32b84", "name": "Stray `console.log` in TS/JS \u2014 public/js/pos.js:1454", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/js/pos.js:1454"}, "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-b2a67cc617207264", "name": "Stray `console.log` in TS/JS \u2014 public/js/report.js:1403", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/js/report.js:1403"}, "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-696628ea3d855ce5", "name": "Stray `console.log` in TS/JS \u2014 public/js/printer.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/js/printer.js:15"}, "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-06e9b2671ab33a9f", "name": "Icon-only button without accessible name \u2014 public/js/app.js:721", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/js/app.js:721"}, "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-3edafc587aa2d308", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell-v2/mockup-pages.jsx:18", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell-v2/mockup-pages.jsx:18"}, "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-56be34dfdc5ff3b5", "name": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell-v2/producao-page.jsx:294", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell-v2/producao-page.jsx:294"}, "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-c0e155d7e4e4884c", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell-v2/mockup-bodies.js:4", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell-v2/mockup-bodies.js:4"}, "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-5db210b1bda5b273", "name": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell-v2/produto-app.jsx:96", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell-v2/produto-app.jsx:96"}, "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-4316468d560ddd15", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell-v2/recurring-page.jsx:865", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell-v2/recurring-page.jsx:865"}, "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-2dfa555ead7e98fb", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell-v2/vendas-extras.jsx:442", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell-v2/vendas-extras.jsx:442"}, "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-a25a938fe5d2139a", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell-v2/compras-page.jsx:218", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell-v2/compras-page.jsx:218"}, "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-01c97eb3efab5e05", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell/mockup-pages.jsx:18", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell/mockup-pages.jsx:18"}, "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-4ca1362f4df19349", "name": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/producao-page.jsx:294", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/producao-page.jsx:294"}, "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-66b510e59bdb1add", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-trouble-lib.jsx:146", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-trouble-lib.jsx:146"}, "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-9bcaf5d4b56372f3", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-trouble-editor.jsx:74", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-trouble-editor.jsx:74"}, "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-38d5ca1dd6587fee", "name": "Stray `console.log` in TS/JS \u2014 public/cowork-preview/erp-shell/vendas-page.jsx:346", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/cowork-preview/erp-shell/vendas-page.jsx:346"}, "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-fe2fa9f7ca81e8da", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-page.jsx:1208", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-page.jsx:1208"}, "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-0d4549c07e519bab", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell/kb-page.jsx:1237", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell/kb-page.jsx:1237"}, "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-b7697e4de6801b60", "name": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/financeiro-app.jsx:196", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/financeiro-app.jsx: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-c9e37a03617a4976", "name": "Stray `console.log` in TS/JS \u2014 public/cowork-preview/erp-shell/financeiro-app.jsx:748", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/cowork-preview/erp-shell/financeiro-app.jsx:748"}, "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-51e18f5f7224d6e0", "name": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/pg-sells-cobranca-preview.jsx:270", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/pg-sells-cobranca-preview.jsx:270"}, "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-c0a6932ec570eb42", "name": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/pg-payment-gateways-page.jsx:219", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/pg-payment-gateways-page.jsx:219"}, "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-4a5fec23dbae10ee", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/mockup-bodies.js:4", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/mockup-bodies.js:4"}, "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-006f6c8879143cd5", "name": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/boleto-contas-app.jsx:359", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/boleto-contas-app.jsx:359"}, "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-fe6cb106965e30a9", "name": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/pg-cobranca-page.jsx:290", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/pg-cobranca-page.jsx:290"}, "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-657c6144916b8b56", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/inbox-v2-extras.jsx:254", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/inbox-v2-extras.jsx:254"}, "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-eff0e64d8eb615a9", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-images-print.jsx:170", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-images-print.jsx:170"}, "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-f31116f83aa31d19", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/vendas-extras.jsx:482", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/vendas-extras.jsx:482"}, "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-ff62a44fb01995fa", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/inbox-v2-ai.jsx:102", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/inbox-v2-ai.jsx:102"}, "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-f2fb7ff01619cab0", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell/inbox-v2-ai.jsx:112", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell/inbox-v2-ai.jsx:112"}, "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-a458a00285569a78", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/inbox-v2-cur.jsx:249", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/inbox-v2-cur.jsx:249"}, "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-dd82e7114923da8b", "name": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/pg-shared.jsx:277", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/pg-shared.jsx: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-5efdeecd7c95041a", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/inbox-v2-out.jsx:124", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/inbox-v2-out.jsx:124"}, "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-11a6909580966727", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/financeiro-telas-extras.jsx:300", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/financeiro-telas-extras.jsx:300"}, "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-b52922b352090254", "name": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/financeiro-telas-extras.jsx:180", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/financeiro-telas-extras.jsx:180"}, "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-7a349ad8a90b2920", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-extras.jsx:128", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-extras.jsx: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-0c10bb069c23adad", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell/kb-extras.jsx:137", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell/kb-extras.jsx:137"}, "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-0f5a729521e77c02", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/compras-page.jsx:218", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/compras-page.jsx:218"}, "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-8d8a27756a311c1c", "name": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-paths.jsx:141", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-paths.jsx:141"}, "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-926b3c417bd73258", "name": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-trouble-lib.jsx:146", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-trouble-lib.jsx:146"}, "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-b9e359f00eb987f3", "name": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-trouble-editor.jsx:74", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-trouble-editor.jsx:74"}, "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-a64e6135e335bdd6", "name": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-page.jsx:1208", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-page.jsx:1208"}, "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-bb37d76487980506", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/prototipos/kb/kb-page.jsx:1237", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/prototipos/kb/kb-page.jsx:1237"}, "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-225e5f2cd2817df9", "name": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-images-print.jsx:170", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-images-print.jsx:170"}, "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-3cb8c0fd9319d9a0", "name": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-extras.jsx:128", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-extras.jsx: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-ade3b025cae1dc35", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/prototipos/kb/kb-extras.jsx:137", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/prototipos/kb/kb-extras.jsx:137"}, "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-8acc1ffbc994cb26", "name": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-paths.jsx:141", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-paths.jsx:141"}, "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-13bb798cc33253bd", "name": "Privileged port 127 in use", "shortDescription": {"text": "Privileged port 127 in use"}, "fullDescription": {"text": "Port 127 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7442e9a0ee36bf72", "name": "Privileged port 50 in use", "shortDescription": {"text": "Privileged port 50 in use"}, "fullDescription": {"text": "Port 50 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-59877274b6e13297", "name": "Privileged port 23 in use", "shortDescription": {"text": "Privileged port 23 in use"}, "fullDescription": {"text": "Port 23 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db6db78248e97f59", "name": "Privileged port 55 in use", "shortDescription": {"text": "Privileged port 55 in use"}, "fullDescription": {"text": "Port 55 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bf27f38a0f524641", "name": "Privileged port 8 in use", "shortDescription": {"text": "Privileged port 8 in use"}, "fullDescription": {"text": "Port 8 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9e0ff52b6c4b07ab", "name": "Privileged port 9 in use", "shortDescription": {"text": "Privileged port 9 in use"}, "fullDescription": {"text": "Port 9 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-09f2db067f8e31a0", "name": "Privileged port 35 in use", "shortDescription": {"text": "Privileged port 35 in use"}, "fullDescription": {"text": "Port 35 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2bcf76efcff89f0c", "name": "Privileged port 5 in use", "shortDescription": {"text": "Privileged port 5 in use"}, "fullDescription": {"text": "Port 5 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a374481f06b006e7", "name": "Dockerfile runs as root: docker/oimpresso-mcp/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: docker/oimpresso-mcp/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a92423ee39383e91", "name": "Docker base image is tag-pinned but not digest-pinned: php:8.4-fpm-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: php:8.4-fpm-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7346697e925a06e9", "name": "Dockerfile runs as root: lib-custom/laravel-boleto/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: lib-custom/laravel-boleto/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f0ad13781939580a", "name": "Docker base image is tag-pinned but not digest-pinned: php:7.3.25-fpm-alpine3.11", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: php:7.3.25-fpm-alpine3.11"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5e05a8ad200ade89", "name": "Dockerfile runs as root: infra/proxmox/docker-host/reverb/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/proxmox/docker-host/reverb/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9e605d495fcd0e35", "name": "Docker base image is tag-pinned but not digest-pinned: php:8.4-cli-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: php:8.4-cli-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8a4cd557dd0bfc18", "name": "Insecure pattern 'direct_innerhtml_assignment' in Modules/ProductCatalogue/Resources/assets/plugins/easy.qrcode.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Modules/ProductCatalogue/Resources/assets/plugins/easy.qrcode.min.js:21"}, "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-c0f9fc3fabb799af", "name": "Insecure pattern 'weak_hash' in Modules/Arquivos/README.md:25", "shortDescription": {"text": "Insecure pattern 'weak_hash' in Modules/Arquivos/README.md:25"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a7bd6663b3864930", "name": "Insecure pattern 'direct_innerhtml_assignment' in Modules/Officeimpresso/Resources/assets/plugins/easy.qrcode.min.js:21", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Modules/Officeimpresso/Resources/assets/plugins/easy.qrcode.min.js:21"}, "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-a180eef1cab481e6", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/ds-behavior.js:95", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/ds-behavior.js:95"}, "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-cf2bf7bdc636dbda", "name": "Insecure pattern 'node_child_process' in prototipo-ui/ds-guard.mjs:31", "shortDescription": {"text": "Insecure pattern 'node_child_process' in prototipo-ui/ds-guard.mjs:31"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-608e7333420b35db", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/Design System v4.html:3818", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/Design System v4.html:3818"}, "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-4ba490e2359f433f", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_arquivo/ds/Design System v3.html:3813", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_arquivo/ds/Design System v3.html:3813"}, "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-39bb7d1eec86bbf5", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/mo", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/mockup-pages.jsx:18"}, "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-46a86b788e7f1d79", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Product Picker Mecanica.html:288"}, "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-f275df44fe327c25", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Venda por Estagio FSM v1.html:321"}, "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-f740f0a531f1ec29", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-page.jsx:1237"}, "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-8bbd811dac47ec86", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Progresso de Notas.html:406"}, "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-78f48ba9d95b74a3", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Venda Simples F1.html:185"}, "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-accc6ec9d4769082", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/in", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-v2-ai.jsx:112"}, "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-677150ab478b35be", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Venda por Estagio FSM.html:425"}, "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-bd12e6f0d4a267fc", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-extras.jsx:137"}, "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-698ddf6b8e305864", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Product Picker.html:177"}, "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-37efed06db2e89fd", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produt", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto/visual-source-picker.html:177"}, "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-2af18d5abd103297", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/vendas", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/vendas-cockpit/visual-source-fsm.html:425"}, "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-8dcd771f322525e4", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/vendas", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/vendas-cockpit/visual-source-fsm-v1.html:321"}, "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-7f05cdf82fd8a656", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-page.jsx", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-page.jsx:1237"}, "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-e260f7d29a10598e", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-extras.j", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-extras.jsx:137"}, "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-1cb23cf9a17b3e02", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-create/visual-source.html:185"}, "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-2471e13b91858575", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/mockup-pages.jsx:18", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/mockup-pages.jsx:18"}, "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-b66b8315bddf80d8", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-page.jsx:1237", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-page.jsx:1237"}, "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-6ebf70281bf1d61e", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-ai.jsx:112", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-ai.jsx:112"}, "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-3ecf17117f6b4e66", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-extras.jsx:137", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-extras.jsx:137"}, "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-6100f9801a8b4117", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hando", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/mockup-pages.jsx:18"}, "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-c75d06d7cd4b4f50", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hando", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-page.jsx:1237"}, "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-6a731ebf111ebe1a", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hando", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-v2-ai.jsx:112"}, "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-c3fbc0831aae84b0", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hando", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-extras.jsx:137"}, "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-1006a2b45b90282a", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hando", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/shared/DataTable.tsx:214"}, "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-14647970d11c3db6", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hando", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/mockup-pages"}, "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-8319d7b5c870fa12", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Prod"}, "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-1542c165201b657c", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Vend"}, "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-9e9e509bfa8abac1", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Vend"}, "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-8221e7835b12e3b6", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Vend"}, "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-e1923477ae89ee82", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Prod"}, "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-c1b2a1f3f8e37a8b", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hando", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Desi"}, "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-d880650ed7a12491", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/Venda por Estagio FSM v1.html:321"}, "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-f91cf5f0bc6b4d31", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/Venda Simples F1.html:185"}, "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-6504ec499476ec66", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/Venda por Estagio FSM.html:425"}, "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-52d218f3e7ae6a1c", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/Product Picker.html:177"}, "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-a4c3dad3374ad744", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/mocku", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/mockup-pages.jsx:18"}, "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-b2fa0b4ba9effb8c", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Product Picker Mecanica.html:288"}, "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-773fd300e5eaa66b", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Venda por Estagio FSM v1.html:321"}, "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-6b5001c453353eae", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-pa", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-page.jsx:1237"}, "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-875e5144f79ab55a", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Progresso de Notas.html:406"}, "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-a0e84d66f954c2ce", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Venda Simples F1.html:185"}, "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-1ab014013ffd55cb", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-v2-ai.jsx:112"}, "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-4d7e5630094ba025", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Venda por Estagio FSM.html:425"}, "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-10d60905681ad75e", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-ex", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-extras.jsx:137"}, "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-6647da41caa40c91", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Product Picker.html:177"}, "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-54194f364355abf9", "name": "Insecure pattern 'node_child_process' in prototipo-ui/audit/review-gen.mjs:25", "shortDescription": {"text": "Insecure pattern 'node_child_process' in prototipo-ui/audit/review-gen.mjs:25"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1e14e828f9533517", "name": "Insecure pattern 'node_child_process' in prototipo-ui/audit/protocol-freshness.mjs:27", "shortDescription": {"text": "Insecure pattern 'node_child_process' in prototipo-ui/audit/protocol-freshness.mjs:27"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-64dca1978c139922", "name": "Insecure pattern 'node_child_process' in prototipo-ui/audit/score-mechanized.mjs:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in prototipo-ui/audit/score-mechanized.mjs:17"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eb84ba265e68905b", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/ds-v6/gabarito-vendas.html:250", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/ds-v6/gabarito-vendas.html:250"}, "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-0bdc21333490fba5", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/mockup-pages.jsx:18", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/mockup-pages.jsx:18"}, "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-cc6ba716ebb584a6", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-page.jsx:1237", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-page.jsx:1237"}, "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-276de2e0b9cd8b83", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-ai.jsx:112", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-ai.jsx:112"}, "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-d33223711742a63e", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-extras.jsx:137", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-extras.jsx:137"}, "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-34b7723e59da4f31", "name": "Insecure pattern 'document_write' in prototipo-ui/prototipos/clientes/clientes-975.jsx:343", "shortDescription": {"text": "Insecure pattern 'document_write' in prototipo-ui/prototipos/clientes/clientes-975.jsx:343"}, "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-7582e1f9ff5dc13b", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/prototipos/clientes/clientes-975.jsx:280", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/prototipos/clientes/clientes-975.jsx:280"}, "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-0737590283867494", "name": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/prototipos/caixa-unificada/inbox-ai.jsx:112", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/prototipos/caixa-unificada/inbox-ai.jsx:112"}, "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-cfc24c4491619d2c", "name": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/prototipos/pageheader-canon-v3/index.html:585", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/prototipos/pageheader-canon-v3/index.html:585"}, "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-e49ff6d5f88e4350", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/js/all.js:1", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/js/all.js:1"}, "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-f95de1bc2ab14c62", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Components/shared/DataTable.tsx:214", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Components/shared/DataTable.tsx:214"}, "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-a4b64bbce28d1214", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/TransactionPayment/Index.tsx:293", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/TransactionPayment/Index.tsx:293"}, "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-e2b35904933088d2", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/TransactionPayment/Show.tsx:119", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/TransactionPayment/Show.tsx:119"}, "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-572873af5c632e83", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Todo/Index.tsx:398", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Todo/Index.tsx:398"}, "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-73604fc158e4633f", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Todo/Show.tsx:327", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Todo/Show.tsx:327"}, "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-9ca2008b54de5429", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Knowledge/Index.tsx:150", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Knowledge/Index.tsx:150"}, "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-dbc80d81ad18493f", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Knowledge/Show.tsx:163", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Knowledge/Show.tsx:163"}, "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-90416fd953c6798c", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Messages/Index.tsx:212", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Messages/Index.tsx:212"}, "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-118b421e57af553e", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Site/Page.tsx:69", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Site/Page.tsx:69"}, "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-f621f8d3e8c365dd", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Site/BlogPost.tsx:80", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Site/BlogPost.tsx:80"}, "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-e2b75c6f7310b1d5", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/MemCofre/Inbox.tsx:361", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/MemCofre/Inbox.tsx:361"}, "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-43754ad90f87b9df", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Financeiro/Dashboard/Index.tsx:401", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Financeiro/Dashboard/Index.tsx:401"}, "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-743d782df406707f", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Cliente/_show/SalesTab.tsx:393", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Cliente/_show/SalesTab.tsx:393"}, "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-5c0feff78f69fb6e", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/team-mcp/CcSessions/Index.tsx:334", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/team-mcp/CcSessions/Index.tsx:334"}, "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-c2509772b4209b04", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Auditoria/Index.tsx:203", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Auditoria/Index.tsx:203"}, "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-12881abb0089d07c", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/kb/Index.tsx:421", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/kb/Index.tsx:421"}, "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-2cd449f57448f8c4", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Colaboradores/Index.tsx:179", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Colaboradores/Index.tsx:179"}, "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-0fee7d25d944836a", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Importacoes/Index.tsx:152", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Importacoes/Index.tsx:152"}, "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-b0452f0ed12a2a86", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Escalas/Index.tsx:133", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Escalas/Index.tsx:133"}, "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-5c82bc5759521c55", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Aprovacoes/Index.tsx:466", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Aprovacoes/Index.tsx:466"}, "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-2355812106538e9e", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Intercorrencias/Index.tsx:226", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Intercorrencias/Index.tsx:226"}, "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-2d669243f775884c", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/BancoHoras/Index.tsx:156", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/BancoHoras/Index.tsx:156"}, "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-e3f3323c1edfd6f7", "name": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Espelho/Index.tsx:140", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Espelho/Index.tsx:140"}, "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-314e54cc166db4b7", "name": "Insecure pattern 'document_write' in resources/js/Lib/printSaleReceipt.ts:202", "shortDescription": {"text": "Insecure pattern 'document_write' in resources/js/Lib/printSaleReceipt.ts:202"}, "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-e68f0abc90b63f29", "name": "Insecure pattern 'document_write' in resources/js/Lib/printServiceOrder.ts:158", "shortDescription": {"text": "Insecure pattern 'document_write' in resources/js/Lib/printServiceOrder.ts:158"}, "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-5171a593a3c54e05", "name": "Insecure pattern 'document_write' in resources/plugins/printThis.js:95", "shortDescription": {"text": "Insecure pattern 'document_write' in resources/plugins/printThis.js:95"}, "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-c3b911a2b9a5a82e", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.js:544"}, "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-1c38fa92877a3e15", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.min.js:4"}, "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-90a5c8796473668d", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/daterangepicker/daterangepicker.js:", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/daterangepicker/daterangepicker.js:158"}, "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-90b24efdf53163d4", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/jQuery/jquery-2.2.3.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/jQuery/jquery-2.2.3.min.js:2"}, "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-c1a0e23647d7d4cf", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/jQuery/jquery-3.4.1.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/jQuery/jquery-3.4.1.min.js:2"}, "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-5c94c2c2ed08cc8c", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysi", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js:2"}, "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-cf654061d8c9c879", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysi", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js:820"}, "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-10e9d77284e15b51", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/select2/select2.js:1275", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/select2/select2.js:1275"}, "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-4c4fb4e49192d29c", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/select2/select2.full.js:1275", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/select2/select2.full.js:1275"}, "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-7b827e144b3bff1f", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jq", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables.min.js:22"}, "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-5db7e1e88ef55d24", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/dataTab", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/dataTables.buttons.js:1740"}, "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-bdb8383be6fc3f46", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.print.min.js:3"}, "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-86adbb0a87432585", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.min.js:8"}, "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-25a72db9f3ccbb9d", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.js:194"}, "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-f5a36d1153c074ab", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/dataTab", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/dataTables.buttons.min.js:35"}, "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-b3bbe53ab9ecd1b7", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.print.js:137"}, "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-b30114ef04666ade", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/FixedColumns-3.2.3/js/da", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/FixedColumns-3.2.3/js/dataTables.fixedColumns.min.js:26"}, "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-dd18b109258b458c", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/FixedColumns-3.2.3/js/da", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/FixedColumns-3.2.3/js/dataTables.fixedColumns.js:1191"}, "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-f97693de863060fb", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/pace/pace.js:249", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/pace/pace.js:249"}, "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-94e9ce979eabdbc9", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/pace/pace.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/pace/pace.min.js:2"}, "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-6c2317ffc667a15f", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/bootstrap-slider/bootstrap-slider.j", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/bootstrap-slider/bootstrap-slider.js:473"}, "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-d82d51c5e95d55a2", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.js:1543", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.js:1543"}, "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-72b7e569187126f5", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.min.js:6", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.min.js:6"}, "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-9079019571d12578", "name": "Insecure pattern 'new_function_used' in resources/plugins/sweetalert/sweetalert.min.js:1", "shortDescription": {"text": "Insecure pattern 'new_function_used' in resources/plugins/sweetalert/sweetalert.min.js:1"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7dabb7b8bd25213f", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/sweetalert/sweetalert.min.js:1", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/sweetalert/sweetalert.min.js:1"}, "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-6f03d996e5b00cfe", "name": "Insecure pattern 'eval_used' in resources/plugins/calculator/calculator.js:14", "shortDescription": {"text": "Insecure pattern 'eval_used' in resources/plugins/calculator/calculator.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-55a6d32738054570", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/dropzone/dropzone.js:778", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/dropzone/dropzone.js:778"}, "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-2fbd138403f9ff94", "name": "Insecure pattern 'document_write' in resources/plugins/jquery-validation-1.16.0/demo/tinymce/tiny_mce.js:1", "shortDescription": {"text": "Insecure pattern 'document_write' in resources/plugins/jquery-validation-1.16.0/demo/tinymce/tiny_mce.js:1"}, "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-08d9df79a8243065", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/demo/tinymce/tiny_mce.js:1", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/demo/tinymce/tiny_mce.js:1"}, "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-3546c3ac5953371a", "name": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/demo/tinymce/tiny_mce.js:1", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/demo/tinymce/tiny_mce.js:1"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dac759e2a9cc08ce", "name": "Insecure pattern 'new_function_used' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js:560", "shortDescription": {"text": "Insecure pattern 'new_function_used' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js:560"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bcbb49d1907acdd5", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js:1316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js:1316"}, "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-cc2f72b32945b7fe", "name": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js:6290", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js:6290"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7fa86b85e947953d", "name": "Insecure pattern 'new_function_used' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:573", "shortDescription": {"text": "Insecure pattern 'new_function_used' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:573"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dc27d15bcfb4c78d", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:1379", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:1379"}, "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-0cacd3b57fd7ffed", "name": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:6153", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:6153"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4ebad6911b7b1824", "name": "Insecure pattern 'document_write' in resources/plugins/jquery-validation-1.16.0/lib/jquery.js:25", "shortDescription": {"text": "Insecure pattern 'document_write' in resources/plugins/jquery-validation-1.16.0/lib/jquery.js:25"}, "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-46d4faa033d486d3", "name": "Insecure pattern 'eval_used' in resources/plugins/jquery-validation-1.16.0/lib/require.js:36", "shortDescription": {"text": "Insecure pattern 'eval_used' in resources/plugins/jquery-validation-1.16.0/lib/require.js:36"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9016a70987261d62", "name": "Insecure pattern 'new_function_used' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:523", "shortDescription": {"text": "Insecure pattern 'new_function_used' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:523"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f4b498a60e10b396", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:1260", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:1260"}, "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-7ebb3f6833d35d78", "name": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:6091", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:6091"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c0740cf4ef8140d1", "name": "Insecure pattern 'document_write' in resources/plugins/jquery-validation-1.16.0/lib/jquery.mockjax.js:25", "shortDescription": {"text": "Insecure pattern 'document_write' in resources/plugins/jquery-validation-1.16.0/lib/jquery.mockjax.js:25"}, "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-fd64d7905ce87ce3", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.11.1.js:1103", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.11.1.js:1103"}, "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-34ed7990e4dccc48", "name": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.11.1.js:5447", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.11.1.js:5447"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-da1039dc08763022", "name": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js:1293", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js:1293"}, "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-5240166d88e5e3da", "name": "Insecure pattern 'node_child_process' in scripts/design-spec-gen.mjs:22", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/design-spec-gen.mjs:22"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8a75bd3728771e01", "name": "Possible secret in scripts/deploy-wave-z2-integracao-vendas-oficina.sh", "shortDescription": {"text": "Possible secret in scripts/deploy-wave-z2-integracao-vendas-oficina.sh"}, "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-2eeeee37bd37a057", "name": "Possible secret in scripts/financial_snapshot.py", "shortDescription": {"text": "Possible secret in scripts/financial_snapshot.py"}, "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-c69d04c714d1aea3", "name": "Insecure pattern 'node_child_process' in scripts/ds-report.mjs:21", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/ds-report.mjs:21"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-15eb7938fee62bfd", "name": "Possible secret in scripts/probe_equipamento.py", "shortDescription": {"text": "Possible secret in scripts/probe_equipamento.py"}, "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-f38745910736cfe8", "name": "Possible secret in scripts/probe_aliases.py", "shortDescription": {"text": "Possible secret in scripts/probe_aliases.py"}, "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-098fe095635b3834", "name": "Possible secret in scripts/probe_inadimplencia.py", "shortDescription": {"text": "Possible secret in scripts/probe_inadimplencia.py"}, "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-7966f0429014e37f", "name": "Insecure pattern 'node_child_process' in scripts/casos-coverage-guard.mjs:51", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/casos-coverage-guard.mjs:51"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9e96379c78d9e7fc", "name": "Possible secret in scripts/probe_configuracoes_grid_blob.py", "shortDescription": {"text": "Possible secret in scripts/probe_configuracoes_grid_blob.py"}, "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-6dc66bb8716f548a", "name": "Possible secret in scripts/sells_grade_heatmap.py", "shortDescription": {"text": "Possible secret in scripts/sells_grade_heatmap.py"}, "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-f0e294f49e5b8d41", "name": "Insecure pattern 'node_child_process' in scripts/ds-ledger.mjs:46", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/ds-ledger.mjs:46"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de670d45e9aabbfa", "name": "Insecure pattern 'node_child_process' in scripts/eslint-baseline.mjs:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/eslint-baseline.mjs:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-67ae77cf0d8113de", "name": "Possible secret in scripts/probe_configuracoes_grid.py", "shortDescription": {"text": "Possible secret in scripts/probe_configuracoes_grid.py"}, "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-1d61bbee02857ffc", "name": "Insecure pattern 'eval_used' in scripts/jana-ragas-runner.py:170", "shortDescription": {"text": "Insecure pattern 'eval_used' in scripts/jana-ragas-runner.py:170"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6fb8c1ea78da931c", "name": "Insecure pattern 'node_child_process' in scripts/reuse-index.mjs:31", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/reuse-index.mjs:31"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-707dee216bc447d7", "name": "Possible secret in scripts/probe_venda_equip_link.py", "shortDescription": {"text": "Possible secret in scripts/probe_venda_equip_link.py"}, "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-215d3398de6b3541", "name": "Possible secret in scripts/probe_veiculo.py", "shortDescription": {"text": "Possible secret in scripts/probe_veiculo.py"}, "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-28434de755f1ab88", "name": "Insecure pattern 'node_child_process' in scripts/governance/protection-drift.mjs:32", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/governance/protection-drift.mjs:32"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-258957b9330d3f5d", "name": "Insecure pattern 'node_child_process' in scripts/governance/knowledge-drift.mjs:23", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/governance/knowledge-drift.mjs:23"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fd8c5512ed39d159", "name": "Insecure pattern 'node_child_process' in scripts/governance/ghost-fix.test.mjs:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/governance/ghost-fix.test.mjs:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d776c931e604dc9", "name": "Insecure pattern 'node_child_process' in scripts/governance/sdd-scorecard.mjs:28", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/governance/sdd-scorecard.mjs:28"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c4d19c70ab3eb30", "name": "Insecure pattern 'node_child_process' in scripts/governance/gate-selftest.mjs:25", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/governance/gate-selftest.mjs:25"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e70004176f2a8ad1", "name": "Insecure pattern 'node_child_process' in scripts/governance/memory-health.mjs:33", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/governance/memory-health.mjs:33"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e6982c7da1557b00", "name": "Insecure pattern 'node_child_process' in scripts/governance/ledger-check.mjs:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/governance/ledger-check.mjs:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-784744d49553b889", "name": "Insecure pattern 'node_child_process' in scripts/qa/screen-grades-ratchet.mjs:26", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/qa/screen-grades-ratchet.mjs:26"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5a29fd8775ac147f", "name": "Insecure pattern 'node_child_process' in scripts/curador/apply.mjs:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/curador/apply.mjs:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-35ddce87ccae1a41", "name": "Possible secret in scripts/legacy-migration/migrar-martinho.py", "shortDescription": {"text": "Possible secret in scripts/legacy-migration/migrar-martinho.py"}, "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-8cacd46e4e3fb078", "name": "Possible secret in scripts/legacy-migration/migrar-tudo.py", "shortDescription": {"text": "Possible secret in scripts/legacy-migration/migrar-tudo.py"}, "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-5843dfb00190ee58", "name": "Possible secret in scripts/legacy-migration/daemon-sync-martinho.py", "shortDescription": {"text": "Possible secret in scripts/legacy-migration/daemon-sync-martinho.py"}, "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-fe0122bcfe02bb8c", "name": "Possible secret in scripts/legacy-migration/sql-wr2-pessoas/gerar-sql-cobrancas-boletos-firebird.py", "shortDescription": {"text": "Possible secret in scripts/legacy-migration/sql-wr2-pessoas/gerar-sql-cobrancas-boletos-firebird.py"}, "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-62ea38403692ebc5", "name": "Insecure pattern 'node_child_process' in scripts/dual-brain/smoke-e2e.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/dual-brain/smoke-e2e.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-da44fa0d325eb869", "name": "Insecure pattern 'exec_used' in scripts/dual-brain/watchers/git-watcher.js:17", "shortDescription": {"text": "Insecure pattern 'exec_used' in scripts/dual-brain/watchers/git-watcher.js:17"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-04fcc697fdc13a16", "name": "Insecure pattern 'node_child_process' in scripts/dual-brain/watchers/git-watcher.js:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/dual-brain/watchers/git-watcher.js:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-22071c0d5d4fada0", "name": "Insecure pattern 'document_write' in doc/assets/frontend/default/js/tinymce.min.js:2", "shortDescription": {"text": "Insecure pattern 'document_write' in doc/assets/frontend/default/js/tinymce.min.js:2"}, "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-88dae5649f0bd8e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/frontend/default/js/tinymce.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/frontend/default/js/tinymce.min.js:2"}, "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-7c4fa53ef3f2fa00", "name": "Insecure pattern 'direct_outerhtml_assignment' in doc/assets/frontend/default/js/tinymce.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in doc/assets/frontend/default/js/tinymce.min.js:2"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-126f91bbe94d1462", "name": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/frontend/default/js/jwplayer.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/frontend/default/js/jwplayer.js:2"}, "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-21a5628ed727f1a1", "name": "Insecure pattern 'direct_outerhtml_assignment' in doc/assets/frontend/default/js/jwplayer.js:3", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in doc/assets/frontend/default/js/jwplayer.js:3"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-91dea78bb0636fdc", "name": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/global/plyr/plyr.js:1", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/global/plyr/plyr.js:1"}, "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-60708a1bf1d73050", "name": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/login/jquery-3.3.1.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/login/jquery-3.3.1.min.js:2"}, "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-acabddaa9dcd3a37", "name": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/app.min.js:1", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/app.min.js:1"}, "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-52498d3e11f2e31e", "name": "Insecure pattern 'domparser_html_parse' in doc/assets/backend/js/app.min.js:1", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in doc/assets/backend/js/app.min.js:1"}, "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-ef55928a0c68bda1", "name": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/app.js:1248", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/app.js:1248"}, "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-cf68797ca7d1ca86", "name": "Insecure pattern 'domparser_html_parse' in doc/assets/backend/js/app.js:15646", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in doc/assets/backend/js/app.js:15646"}, "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-78d5996a91c2954b", "name": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/jquery-3.3.1.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/jquery-3.3.1.min.js:2"}, "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-f5f1c75845795380", "name": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/font-awesome-icon-picker/fontawesome-four-iconpi", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/font-awesome-icon-picker/fontawesome-four-iconpicker.min.js:1"}, "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-5169be8d089d82bb", "name": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/font-awesome-icon-picker/fontawesome-iconpicker.", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/font-awesome-icon-picker/fontawesome-iconpicker.min.js:20"}, "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-9a74cacd17e76c48", "name": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screen-grade-board.html:71", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screen-grade-board.html:71"}, "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-c3f2f6d5cc1f7573", "name": "Insecure pattern 'direct_innerhtml_assignment' in memory/governance/scorecards/screen-grade-board.html:88", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in memory/governance/scorecards/screen-grade-board.html:88"}, "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-33d46a2af420660a", "name": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screen-grades-baseline-2026-05-30.json:344", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screen-grades-baseline-2026-05-30.json:344"}, "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-13ca94306b3e639d", "name": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/oficinaauto-serviceorders-index.yaml:25", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/oficinaauto-serviceorders-index.yaml:25"}, "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-5d8845cc2566be60", "name": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/financeiro-dashboard-index.yaml:15", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/financeiro-dashboard-index.yaml:15"}, "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-fc6df3e2f574b660", "name": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/transactionpayment-show.yaml:20", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/transactionpayment-show.yaml:20"}, "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-bb7636cca283b254", "name": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/site-blogpost.yaml:15", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/site-blogpost.yaml:15"}, "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-1186ce182444a815", "name": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/essentials-knowledge-show.yaml:20", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/essentials-knowledge-show.yaml:20"}, "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-fc207c241b994bdd", "name": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/transactionpayment-index.yaml:30", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/transactionpayment-index.yaml:30"}, "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-b730622b2406aab0", "name": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/essentials-messages-index.yaml:20", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/essentials-messages-index.yaml:20"}, "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-2f9c0c99e5bfd14d", "name": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/essentials-todo-show.yaml:15", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/essentials-todo-show.yaml:15"}, "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-f566f99c1616667f", "name": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/site-page.yaml:15", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/site-page.yaml:15"}, "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-0d311f684b94b580", "name": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/essentials-knowledge-index.yaml:25", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/essentials-knowledge-index.yaml:25"}, "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-7b041742974bd4f3", "name": "Insecure pattern 'node_child_process' in .claude/governance-eval/grade.mjs:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/governance-eval/grade.mjs:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ca90fafb96189a5", "name": "Insecure pattern 'node_child_process' in .claude/hooks/git-base-freshness-guard.mjs:34", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/git-base-freshness-guard.mjs:34"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4226b2d7f66d6821", "name": "Insecure pattern 'node_child_process' in .claude/hooks/block-askq-execution-menu.test.mjs:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/block-askq-execution-menu.test.mjs:3"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-78969efec4ef4af4", "name": "Insecure pattern 'node_child_process' in .claude/hooks/git-base-freshness-guard.test.mjs:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/git-base-freshness-guard.test.mjs:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7dbe1916867e7c41", "name": "Insecure pattern 'node_child_process' in .claude/hooks/block-pr-without-approval.test.mjs:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/block-pr-without-approval.test.mjs:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-085fb937bede0bd3", "name": "Insecure pattern 'node_child_process' in .claude/hooks/design-handoff-reprocess.test.mjs:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/design-handoff-reprocess.test.mjs:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f77cec136ad1de8b", "name": "Insecure pattern 'eval_used' in .claude/workflows/sdd-fase-1.js:77", "shortDescription": {"text": "Insecure pattern 'eval_used' in .claude/workflows/sdd-fase-1.js:77"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a2307df01f096ac2", "name": "Possible secret in .claude/skills/criar-modulo/SKILL.md", "shortDescription": {"text": "Possible secret in .claude/skills/criar-modulo/SKILL.md"}, "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-cc654564c5aac521", "name": "Possible secret in .claude/skills/officeimpresso-financial-snapshot/SKILL.md", "shortDescription": {"text": "Possible secret in .claude/skills/officeimpresso-financial-snapshot/SKILL.md"}, "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-fb1c8bb749ccd538", "name": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell-v2/mockup-pages.jsx:18", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell-v2/mockup-pages.jsx:18"}, "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-11f6ef50e49d180f", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Product Picker Mecanica.html:288", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Product Picker Mecanica.html:288"}, "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-ad970076af321f82", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Venda por Estagio FSM v1.html:321", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Venda por Estagio FSM v1.html:321"}, "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-f983dce5c799448d", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Venda Simples F1.html:185", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Venda Simples F1.html:185"}, "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-9d80dc41f72f2c23", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Venda por Estagio FSM.html:425", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Venda por Estagio FSM.html:425"}, "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-f06870baec519db6", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Product Picker.html:177", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Product Picker.html:177"}, "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-9b4e1b07caa06d41", "name": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell/mockup-pages.jsx:18", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell/mockup-pages.jsx:18"}, "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-ce7e67d8551dedf3", "name": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell/kb-page.jsx:1237", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell/kb-page.jsx:1237"}, "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-7d9b5cc3b50fc766", "name": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell/inbox-v2-ai.jsx:112", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell/inbox-v2-ai.jsx:112"}, "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-4f24347b3733b7a3", "name": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell/kb-extras.jsx:137", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell/kb-extras.jsx:137"}, "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-0cfbaeea1ae6af1b", "name": "Insecure pattern 'dangerous_innerhtml' in public/prototipos/kb/kb-page.jsx:1237", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/prototipos/kb/kb-page.jsx:1237"}, "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-7f167a6e8106a85a", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/prototipos/kb/index.html:101", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/prototipos/kb/index.html:101"}, "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-ac3375bf53d55a22", "name": "Insecure pattern 'dangerous_innerhtml' in public/prototipos/kb/kb-extras.jsx:137", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/prototipos/kb/kb-extras.jsx:137"}, "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-b9de2a1a488b3ab1", "name": "Insecure pattern 'direct_innerhtml_assignment' in oimpresso_designer_view/index.html:759", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in oimpresso_designer_view/index.html:759"}, "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-230806e8935e45d2", "name": "Insecure pattern 'eval_used' in .github/workflows/jana-ragas-gate.yml:143", "shortDescription": {"text": "Insecure pattern 'eval_used' in .github/workflows/jana-ragas-gate.yml:143"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-53758bda67d2910d", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-db62436edafb01bd", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-62d854eb4fd9c4c4", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@v5 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-561aa034fa8143dc", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-ddd4a7b552e603da", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-624f9daea8132587", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@v5 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-4da4dc47dd960608", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-667fd54f467e3276", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-792a2343dff052c2", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-6d83dfd660d20512", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "dorny/paths-filter@v3 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": "medium", "confidence": 1.0}}, {"id": "scanner-3c55de9111e47fcc", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cde38146af37f687", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-e138ce726376b415", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-74a455ad39c1088f", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "dorny/paths-filter@v3 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": "medium", "confidence": 1.0}}, {"id": "scanner-265b69f80d74f8f4", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-41fec1000258bce1", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-53746b36e642b9e3", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-f3ac460a7f61f1be", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-d5501bae06ff5578", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-fd8b681c546cc8bb", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-c2510bc7fd22588d", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-28c4a04bd807da0c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-ca52a4398c0d8fad", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-50f071370e9c1cb2", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-547f0e6978026dd5", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-93b5dc94140a9b18", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "dorny/paths-filter@v3 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": "medium", "confidence": 1.0}}, {"id": "scanner-506c90e5627fa399", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-448948e26b62567b", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-86cb5cd8310434b1", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-11312b9c0c728ec7", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-1f2a8482341fad52", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-fe2254bbca714f3f", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-b639f80738a9293c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@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-a589d2398c0c0655", "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-45cede5166ad6fcc", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-5403f451202ceec7", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-1b4aa409c6dad252", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-23df79c7c9901248", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-bc88d55e7427e400", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "dorny/paths-filter@v3 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": "medium", "confidence": 1.0}}, {"id": "scanner-6ba44d219eaaafaa", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-2741aa2144d9b69b", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-e3dc604b8e09be42", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-24cc74ddff2810e6", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-af2e9bc3a8133ef3", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "shivammathur/setup-php@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-7920442d4972825c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@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-69a2ce2c42a26503", "name": "Very large file: prototipo-ui/vendas-flow.jsx (1407 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/vendas-flow.jsx (1407 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-fd4d3cea131987a4", "name": "Very large file: prototipo-ui/vendas-page.jsx (1921 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/vendas-page.jsx (1921 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-06f9d019ae133757", "name": "Very large file: prototipo-ui/vendas-extras.jsx (1325 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/vendas-extras.jsx (1325 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-3358a5e028813273", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/boletos/cowork-app.jsx (946 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/boletos/cowork-app.jsx (946 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-5df69e4d2a9c7833", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/components/pg-cobran", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/components/pg-cobranca-page.jsx (996 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-4c8c4a4ced184117", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-page.jsx (1610 lines", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-page.jsx (1610 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-d3e8e28067fcf456", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-page.jsx (1537 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-page.jsx (1537 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-1c2dc880c9e110e0", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/financeiro-app.jsx (986 lin", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/financeiro-app.jsx (986 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-730cd07a06441eae", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-aplus.jsx (1093 line", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-aplus.jsx (1093 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-a03b2c7ec6900102", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/boleto-contas-app.jsx (946 ", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/boleto-contas-app.jsx (946 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-631e23f2776514ab", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/produto-app.jsx (1111 lines", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/produto-app.jsx (1111 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-8c449d04622fd067", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-extras.jsx (1269 lin", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-extras.jsx (1269 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-e367d301225849ad", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-page.jsx (1141 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-page.jsx (1141 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-3bcdcfa05acfeedf", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/recurring/recurring-page.jsx (1637 line", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/recurring/recurring-page.jsx (1637 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-d2a8f8dd298a9166", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto/produto-app.jsx (1111 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto/produto-app.jsx (1111 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-32dfd32766327d95", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto/cowork-app.jsx (1111 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto/cowork-app.jsx (1111 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-cc425dc03aa6480c", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/caixa-unificada/inbox-page.jsx (937 lin", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/caixa-unificada/inbox-page.jsx (937 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-a3f0ca318f709e54", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto-unificado/produto-app.jsx (1111", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto-unificado/produto-app.jsx (1111 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-f9b3938df309f9b6", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/vendas-cockpit/cowork-extras.jsx (1225 ", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/vendas-cockpit/cowork-extras.jsx (1225 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-f0a623427fe95796", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-page.jsx (1537 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-page.jsx (1537 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-7320caf7e1ac17e0", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-create/vendas-extras.jsx (1225 li", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-create/vendas-extras.jsx (1225 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-0a9e4d0d48343571", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-page.jsx (1666 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-page.jsx (1666 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-35017de7e552dda8", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-page.jsx (1537 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-page.jsx (1537 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-cbb735a2b5a24c4a", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/boleto-contas-app.jsx (946 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/boleto-contas-app.jsx (946 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-1de414c39403f731", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-extras.jsx (1269 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-extras.jsx (1269 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-e8a67336ed1a9a22", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-page.jsx (1141 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-page.jsx (1141 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-6dfeda94972f520c", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/vendas-", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/vendas-page.jsx (1666 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-22c770c9f70e0293", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-page", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-page.jsx (1537 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-f2c207a9a7ef5bb2", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/finance", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-app.jsx (1133 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-daf4bc2fccb32d11", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/boleto-", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/boleto-contas-app.jsx (946 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-9af7dcd9a288b798", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/vendas-", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/vendas-extras.jsx (1269 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-3f784dce07f88509", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-p", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-page.jsx (1141 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-7376be792335b0e8", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/financeiro-app.jsx (986 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-9017b71d2c480695", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/boleto-contas-app.jsx (946 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-13c7f9a3190ab88d", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/produto-app.jsx (1111 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-af1b2cd0369375b5", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/vendas-extras.jsx (1225 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-b854a352ca7c8841", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/prototipos/produto"}, "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-4430c1c4330de85f", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/boleto-contas-app.jsx (905 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-bc9fe9eb730be43d", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/produto-app.jsx (1111 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-4bccba9d90aca8bc", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/vendas-extras.jsx (1225 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-59004cf7b30d1fc7", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/prototipos/produto/produto-app.jsx (1111 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-a8eaf230ea4350c9", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototi", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/vendas-page.jsx (1666 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-19cce602820f0e62", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototi", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-app.jsx (1133 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-44dbc08f3cf16d63", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototi", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/vendas-extras.jsx (1269 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-e61bb050d551e9d8", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototi", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-refino-kb-9.75/vendas-page.jsx (1598 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-097cae709ad496fa", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototi", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-refino-kb-9.75/vendas-extras.jsx (1221 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-5cf2cf18b3bf0eeb", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototi", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/prototipos/produto/produto-app.jsx (1111 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-2e200acc52329a93", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vendas-page.jsx (1159 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vendas-page.jsx (1159 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-8ae29a1789a2b8c4", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-page.jsx (1537 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-page.jsx (1537 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-bcdffc48576a9996", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/financeiro-app.jsx (986 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/financeiro-app.jsx (986 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-b05559296d43bfdc", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vendas-aplus.jsx (1093 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vendas-aplus.jsx (1093 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-b6a413c349006657", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/boleto-contas-app.jsx (946 lin", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/boleto-contas-app.jsx (946 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-591036d062a9d1ff", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/produto-app.jsx (1111 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/produto-app.jsx (1111 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-aa7576afefdc38ab", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vendas-extras.jsx (1225 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vendas-extras.jsx (1225 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-2bdada3506ba8565", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-page.jsx (1141 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-page.jsx (1141 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-a6bbfcc851045f0d", "name": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/prototipos/", "shortDescription": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/prototipos/produto/produto-app.jsx (1111 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-fcec18abede3df4c", "name": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-flow.jsx (1407 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-flow.jsx (1407 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-a83905b1727d094f", "name": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-page.jsx (1921 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-page.jsx (1921 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-c772952d06b708ab", "name": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/clientes-page.jsx (1028 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/clientes-page.jsx (1028 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-2bacb9353ebaff95", "name": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-page.jsx (1537 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-page.jsx (1537 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-7eb917e75759ca09", "name": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-app.jsx (1133 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-app.jsx (1133 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-97ec29979b9568a2", "name": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/boleto-contas-app.jsx (946 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/boleto-contas-app.jsx (946 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-7cc3463ec0baed45", "name": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-cobranca-page.jsx (996 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-cobranca-page.jsx (996 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-ad9d1d69d81377e7", "name": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-extras.jsx (1325 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-extras.jsx (1325 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-5287628feb588d51", "name": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-page.jsx (1141 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-page.jsx (1141 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-2527c09f48606221", "name": "Very large file: prototipo-ui/prototipos/caixa-unificada/inbox-page.jsx (1141 lines)", "shortDescription": {"text": "Very large file: prototipo-ui/prototipos/caixa-unificada/inbox-page.jsx (1141 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-e95c125949d70073", "name": "Very large file: resources/js/Pages/Whatsapp/_components/ConversationThread.tsx (1644 lines)", "shortDescription": {"text": "Very large file: resources/js/Pages/Whatsapp/_components/ConversationThread.tsx (1644 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-3a0694b88c3c053b", "name": "Very large file: resources/js/Pages/Financeiro/_cowork-bundle/financeiro-app.jsx (1133 lines)", "shortDescription": {"text": "Very large file: resources/js/Pages/Financeiro/_cowork-bundle/financeiro-app.jsx (1133 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-c1b0c0a5adf31af7", "name": "Very large file: resources/js/Pages/Financeiro/Unificado/Index.tsx (2729 lines)", "shortDescription": {"text": "Very large file: resources/js/Pages/Financeiro/Unificado/Index.tsx (2729 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-b43a39735684e29b", "name": "Very large file: resources/js/Pages/RecurringBilling/Index.tsx (1880 lines)", "shortDescription": {"text": "Very large file: resources/js/Pages/RecurringBilling/Index.tsx (1880 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-287e4929b9517a85", "name": "Very large file: resources/js/Pages/Cliente/Index.tsx (2682 lines)", "shortDescription": {"text": "Very large file: resources/js/Pages/Cliente/Index.tsx (2682 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-dacf459d4c6b19d7", "name": "Very large file: resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx (1300 lines)", "shortDescription": {"text": "Very large file: resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx (1300 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fd4fb4ea6505c5cd", "name": "Very large file: resources/js/Pages/Sells/Index.tsx (1807 lines)", "shortDescription": {"text": "Very large file: resources/js/Pages/Sells/Index.tsx (1807 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-89ecafb48d1f8006", "name": "Very large file: resources/js/Pages/Sells/Edit.tsx (1100 lines)", "shortDescription": {"text": "Very large file: resources/js/Pages/Sells/Edit.tsx (1100 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-796d0ea6fe7206ad", "name": "Very large file: resources/js/Pages/Sells/Create.tsx (1998 lines)", "shortDescription": {"text": "Very large file: resources/js/Pages/Sells/Create.tsx (1998 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-c47beac9cae3b15b", "name": "Very large file: resources/plugins/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.js (2061 lines)", "shortDescription": {"text": "Very large file: resources/plugins/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.js (2061 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-6c3f581dc314ad77", "name": "Very large file: resources/plugins/AdminLTE/plugins/daterangepicker/daterangepicker.js (1565 lines)", "shortDescription": {"text": "Very large file: resources/plugins/AdminLTE/plugins/daterangepicker/daterangepicker.js (1565 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-fb74efeb9769d412", "name": "Very large file: resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js (14975 lines)", "shortDescription": {"text": "Very large file: resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js (14975 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-878fb93fca4099a0", "name": "Very large file: resources/plugins/AdminLTE/plugins/fullcalendar/fullcalendar.js (9731 lines)", "shortDescription": {"text": "Very large file: resources/plugins/AdminLTE/plugins/fullcalendar/fullcalendar.js (9731 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-f11ce1ff94c01366", "name": "Very large file: resources/plugins/AdminLTE/plugins/select2/select2.js (5725 lines)", "shortDescription": {"text": "Very large file: resources/plugins/AdminLTE/plugins/select2/select2.js (5725 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-f7bf7a4e54466f6c", "name": "Very large file: resources/plugins/AdminLTE/plugins/select2/select2.full.js (6436 lines)", "shortDescription": {"text": "Very large file: resources/plugins/AdminLTE/plugins/select2/select2.full.js (6436 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-9345b194ecf8a5c0", "name": "Very large file: resources/plugins/AdminLTE/plugins/DataTables/JSZip-2.5.0/jszip.js (9154 lines)", "shortDescription": {"text": "Very large file: resources/plugins/AdminLTE/plugins/DataTables/JSZip-2.5.0/jszip.js (9154 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-680733d7f761290e", "name": "Very large file: resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables.js (15243 lines)", "shortDescription": {"text": "Very large file: resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables.js (15243 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-ef48d0d58fdbbca7", "name": "Very large file: resources/plugins/AdminLTE/plugins/bootstrap-slider/bootstrap-slider.js (1576 lines)", "shortDescription": {"text": "Very large file: resources/plugins/AdminLTE/plugins/bootstrap-slider/bootstrap-slider.js (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-e475f325c6be20ed", "name": "Very large file: resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.js (16616 lines)", "shortDescription": {"text": "Very large file: resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.js (16616 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-7249f6f17b71902f", "name": "Very large file: resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.js (1627 lines)", "shortDescription": {"text": "Very large file: resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.js (1627 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-36572b20e410a43b", "name": "Very large file: resources/plugins/bootstrap/js/bootstrap.js (2377 lines)", "shortDescription": {"text": "Very large file: resources/plugins/bootstrap/js/bootstrap.js (2377 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-2209eb53a9ce6f11", "name": "Very large file: resources/plugins/fullcalendar/fullcalendar.d.ts (2677 lines)", "shortDescription": {"text": "Very large file: resources/plugins/fullcalendar/fullcalendar.d.ts (2677 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-96797db06313dbfd", "name": "Very large file: resources/plugins/fullcalendar/fullcalendar.js (15147 lines)", "shortDescription": {"text": "Very large file: resources/plugins/fullcalendar/fullcalendar.js (15147 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-f824de98e5540a53", "name": "Very large file: resources/plugins/dropzone/dropzone.js (3530 lines)", "shortDescription": {"text": "Very large file: resources/plugins/dropzone/dropzone.js (3530 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-7bcc6f52f3d74b63", "name": "Very large file: resources/plugins/jquery-validation-1.16.0/test/test.js (2359 lines)", "shortDescription": {"text": "Very large file: resources/plugins/jquery-validation-1.16.0/test/test.js (2359 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-aed38ef588c0b0b8", "name": "Very large file: resources/plugins/jquery-validation-1.16.0/test/methods.js (1637 lines)", "shortDescription": {"text": "Very large file: resources/plugins/jquery-validation-1.16.0/test/methods.js (1637 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-af587c50794a82a9", "name": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js (9596 lines)", "shortDescription": {"text": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js (9596 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-4a03ce649da70f13", "name": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js (9404 lines)", "shortDescription": {"text": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js (9404 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-8ad393f43f1e85b8", "name": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js (9471 lines)", "shortDescription": {"text": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js (9471 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-850655cf729e35fa", "name": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-1.11.1.js (10308 lines)", "shortDescription": {"text": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-1.11.1.js (10308 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-166c5cc251b13b18", "name": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js (10220 lines)", "shortDescription": {"text": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js (10220 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-33cfef2188734ef2", "name": "Very large file: resources/plugins/jquery.steps/jquery.steps.js (2041 lines)", "shortDescription": {"text": "Very large file: resources/plugins/jquery.steps/jquery.steps.js (2041 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-513d35dd834b141e", "name": "Very large file: doc/assets/backend/js/app.js (24841 lines)", "shortDescription": {"text": "Very large file: doc/assets/backend/js/app.js (24841 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-699f8001de5123c5", "name": "Very large file: public/js/pos.js (3207 lines)", "shortDescription": {"text": "Very large file: public/js/pos.js (3207 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-3f69af84317ec622", "name": "Very large file: public/js/report.js (1815 lines)", "shortDescription": {"text": "Very large file: public/js/report.js (1815 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-37620ba1fd0eba12", "name": "Very large file: public/js/app.js (2871 lines)", "shortDescription": {"text": "Very large file: public/js/app.js (2871 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-2e4cf75e950631be", "name": "Very large file: public/js/purchase.js (1350 lines)", "shortDescription": {"text": "Very large file: public/js/purchase.js (1350 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-4d69d0d86f8155fd", "name": "Very large file: public/cowork-preview/erp-shell-v2/produto-app.jsx (1111 lines)", "shortDescription": {"text": "Very large file: public/cowork-preview/erp-shell-v2/produto-app.jsx (1111 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-9d1264947f493e03", "name": "Very large file: public/cowork-preview/erp-shell-v2/recurring-page.jsx (1637 lines)", "shortDescription": {"text": "Very large file: public/cowork-preview/erp-shell-v2/recurring-page.jsx (1637 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-311a96560ee2c618", "name": "Very large file: public/cowork-preview/erp-shell-v2/vendas-extras.jsx (1225 lines)", "shortDescription": {"text": "Very large file: public/cowork-preview/erp-shell-v2/vendas-extras.jsx (1225 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-f241f371f18f58d7", "name": "Very large file: public/cowork-preview/erp-shell-v2/fiscal-page.jsx (1542 lines)", "shortDescription": {"text": "Very large file: public/cowork-preview/erp-shell-v2/fiscal-page.jsx (1542 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-a1b876be7676d21d", "name": "Very large file: public/cowork-preview/erp-shell/vendas-page.jsx (1667 lines)", "shortDescription": {"text": "Very large file: public/cowork-preview/erp-shell/vendas-page.jsx (1667 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-1a48fe0d7ae8a7b2", "name": "Very large file: public/cowork-preview/erp-shell/kb-page.jsx (1537 lines)", "shortDescription": {"text": "Very large file: public/cowork-preview/erp-shell/kb-page.jsx (1537 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-7a307c8b387fc83d", "name": "Very large file: public/cowork-preview/erp-shell/financeiro-app.jsx (1133 lines)", "shortDescription": {"text": "Very large file: public/cowork-preview/erp-shell/financeiro-app.jsx (1133 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-3c968a6e257d66fc", "name": "Very large file: public/cowork-preview/erp-shell/boleto-contas-app.jsx (946 lines)", "shortDescription": {"text": "Very large file: public/cowork-preview/erp-shell/boleto-contas-app.jsx (946 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-4e01a7de6e3e7ddb", "name": "Very large file: public/cowork-preview/erp-shell/pg-cobranca-page.jsx (996 lines)", "shortDescription": {"text": "Very large file: public/cowork-preview/erp-shell/pg-cobranca-page.jsx (996 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-69315674b553762b", "name": "Very large file: public/cowork-preview/erp-shell/vendas-extras.jsx (1269 lines)", "shortDescription": {"text": "Very large file: public/cowork-preview/erp-shell/vendas-extras.jsx (1269 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-d3925c1ce6d62c24", "name": "Very large file: public/cowork-preview/erp-shell/inbox-page.jsx (1141 lines)", "shortDescription": {"text": "Very large file: public/cowork-preview/erp-shell/inbox-page.jsx (1141 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-9c67747552550e0c", "name": "Very large file: public/prototipos/kb/kb-page.jsx (1537 lines)", "shortDescription": {"text": "Very large file: public/prototipos/kb/kb-page.jsx (1537 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": "37 test file(s) for 2042 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-ed0fca79a2904363", "name": "481 TODO/FIXME markers", "shortDescription": {"text": "481 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-3845440ecee60ae4", "name": "Node manifest has dependencies but no lockfile: Modules/Essentials/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/Essentials/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8269dcfe24a9fd95", "name": "Node manifest has dependencies but no lockfile: Modules/ProductCatalogue/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/ProductCatalogue/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6c92afaa56e6c6f1", "name": "Node manifest has dependencies but no lockfile: Modules/AssetManagement/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/AssetManagement/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9440f685ba0b0e6c", "name": "Node manifest has dependencies but no lockfile: Modules/Financeiro/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/Financeiro/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-882dc912aeefe7d7", "name": "Node manifest has dependencies but no lockfile: Modules/RecurringBilling/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/RecurringBilling/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-93f0dcb3058c5945", "name": "Node manifest has dependencies but no lockfile: Modules/Spreadsheet/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/Spreadsheet/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b9b7c55fa38796c2", "name": "Node manifest has dependencies but no lockfile: Modules/Cms/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/Cms/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3f43f2fc3502c34a", "name": "Node manifest has dependencies but no lockfile: Modules/Manufacturing/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/Manufacturing/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-40a0021feb4127c9", "name": "Node manifest has dependencies but no lockfile: Modules/Repair/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/Repair/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d2d6a00e732e89ce", "name": "Node manifest has dependencies but no lockfile: Modules/NfeBrasil/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/NfeBrasil/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b1f889439a48ec54", "name": "Node manifest has dependencies but no lockfile: Modules/Woocommerce/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/Woocommerce/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eb070234bf460a46", "name": "Node manifest has dependencies but no lockfile: Modules/Officeimpresso/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/Officeimpresso/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a99503e0d5ab9543", "name": "Node manifest has dependencies but no lockfile: Modules/Ponto/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/Ponto/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5aa63545cf93b288", "name": "Node manifest has dependencies but no lockfile: Modules/Connector/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/Connector/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f400a77ef5b98efa", "name": "Node manifest has dependencies but no lockfile: Modules/Superadmin/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/Superadmin/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ddc7281f7eba8bd6", "name": "Node manifest has dependencies but no lockfile: Modules/Crm/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Modules/Crm/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ad3f34c2a9fa573b", "name": "Node manifest has dependencies but no lockfile: resources/plugins/jquery-validation-1.16.0/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: resources/plugins/jquery-validation-1.16.0/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4018fc5b6916e51e", "name": "Node manifest has dependencies but no lockfile: scripts/dual-brain/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: scripts/dual-brain/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 1546 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 4979 placeholder/mock markers across 1246 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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 lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc55229a7a3c078d", "name": "Agent authority lacks a verifier contract: .mcp.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .mcp.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-48960addd53d7c38", "name": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dbae6fdd21bf0994", "name": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bce859e804d339d6", "name": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-045d955a54cb9606", "name": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8f86a20d3aebb1ad", "name": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/CLA"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a94f978f1590a8ae", "name": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Des"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8f4e953e489afe4b", "name": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-hand", "shortDescription": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d41ffed000cfb4ed", "name": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/CLAU", "shortDescription": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a32179addafb5f70", "name": "Agent authority lacks a verifier contract: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-58db43eab2c1ca09", "name": "Agent authority lacks a verifier contract: .claude/rules/commands.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/rules/commands.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e81bb1a9a965cf0a", "name": "Agent instruction/config may expose a secret: .claude/rules/reuse-check.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/rules/reuse-check.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be62216d21412972", "name": "Agent authority lacks a verifier contract: .claude/rules/reuse-check.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/rules/reuse-check.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-88ad91f22c0e9262", "name": "Agent authority lacks a verifier contract: .claude/rules/calculo-valor-estoque.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/rules/calculo-valor-estoque.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-71bcc15e25ed0e94", "name": "Agent authority lacks a verifier contract: .claude/commands/comparativo.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/comparativo.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ca66540d2821de4", "name": "Agent authority lacks a verifier contract: .claude/commands/audit-and-fix.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/audit-and-fix.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-076774a9f302eb19", "name": "Agent instruction/config may expose a secret: .claude/commands/continuar.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/commands/continuar.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-47cf380708c81271", "name": "Agent authority lacks a verifier contract: .claude/agents/design-arte.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/design-arte.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ae124c776cd068d7", "name": "Agent authority lacks a verifier contract: .claude/agents/capterra-senior.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/capterra-senior.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0b0881383f9690b2", "name": "Agent instruction/config may expose a secret: .claude/agents/como-integrar.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/agents/como-integrar.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e2f2093192a8f5e2", "name": "Agent authority lacks a verifier contract: .claude/agents/coordenador-paralelo.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/coordenador-paralelo.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-172bd19ce39de4bc", "name": "Agent authority lacks a verifier contract: .claude/agents/whatsapp-arch-arte.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/whatsapp-arch-arte.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea17ead5b1b9b2f7", "name": "Agent authority lacks a verifier contract: .claude/agents/audit-research-expert.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/audit-research-expert.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a8cea058a3acedf", "name": "Agent authority lacks a verifier contract: .claude/agents/maturity-gap-expert.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/maturity-gap-expert.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-10906505ef1d3b6c", "name": "Agent authority lacks a verifier contract: .claude/agents/migracao-firebird-versoes.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/migracao-firebird-versoes.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dfba32314d5cc722", "name": "Agent authority lacks a verifier contract: .claude/agents/audit-implement-expert.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/audit-implement-expert.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f5c63e2e1dd2baca", "name": "Agent authority lacks a verifier contract: .claude/agents/audit-senior-expert.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/audit-senior-expert.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-346e444798d71c46", "name": "Agent authority lacks a verifier contract: .claude/agents/whatsapp-doctor.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/whatsapp-doctor.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bbf0135ae50d0b54", "name": "Agent authority lacks a verifier contract: .claude/agents/tela-venda-arte.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/tela-venda-arte.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4631b8aa2e3e85f9", "name": "Agent authority lacks a verifier contract: .claude/agents/estado-da-arte.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/estado-da-arte.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-04a101f11269b10d", "name": "Agent authority lacks a verifier contract: .claude/agents/financeiro-bridge-auditor.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/financeiro-bridge-auditor.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a5d403a01ba893a3", "name": "Agent authority lacks a verifier contract: .claude/agents/migracao-officeimpresso.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/migracao-officeimpresso.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-39fc989ebec86187", "name": "Agent authority lacks a verifier contract: .claude/skills/screen-grade/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/screen-grade/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc91e8856e8a3d53", "name": "Agent authority lacks a verifier contract: .claude/skills/module-grades-gate/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/module-grades-gate/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6da597005ad1e42c", "name": "Agent instruction/config may expose a secret: .claude/skills/ads-decision-flow/SKILL.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/ads-decision-flow/SKILL.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c023fc95d8618e6", "name": "Agent authority lacks a verifier contract: .claude/skills/ticket-triage/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/ticket-triage/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-587e390cc31de2c7", "name": "Agent authority lacks a verifier contract: .claude/skills/sdd-avaliar/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/sdd-avaliar/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-44a68e03ccad29a1", "name": "Agent authority lacks a verifier contract: .claude/skills/cockpit-runbook/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/cockpit-runbook/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e4a2ea5b3a0cf925", "name": "Agent authority lacks a verifier contract: .claude/skills/pageheader-canon/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/pageheader-canon/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-468eed9fa14ad842", "name": "Agent authority lacks a verifier contract: .claude/skills/automem-pending/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/automem-pending/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4b8fbfed88ab46e1", "name": "Agent authority lacks a verifier contract: .claude/skills/curador/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/curador/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3fba85e8f48e8606", "name": "Agent authority lacks a verifier contract: .claude/skills/avaliar-modulo/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/avaliar-modulo/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f112aaeb212031cc", "name": "Agent authority lacks a verifier contract: .claude/skills/migration-status/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/migration-status/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-34a4e6f5474bfc43", "name": "Agent authority lacks a verifier contract: .claude/skills/pre-adr-introspect/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/pre-adr-introspect/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c10493f9d7d8d99d", "name": "Agent authority lacks a verifier contract: .claude/skills/tela-smoke-pos-merge/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/tela-smoke-pos-merge/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-34c6e07073e73e6e", "name": "Agent instruction/config may expose a secret: .claude/skills/proxmox-docker-host/SKILL.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/proxmox-docker-host/SKILL.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f0cb4341b93f69b4", "name": "Agent instruction contains unpinned remote install: .claude/skills/proxmox-docker-host/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: .claude/skills/proxmox-docker-host/SKILL.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-65dacad34cc2d8af", "name": "Agent authority lacks a verifier contract: .claude/skills/hostinger-dns-autonomy/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/hostinger-dns-autonomy/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a69af97e11ab5d92", "name": "Agent instruction/config may expose a secret: .claude/skills/audit-constituicao/SKILL.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/audit-constituicao/SKILL.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a633a9856f5b2fdb", "name": "Agent instruction/config may expose a secret: .claude/skills/audit-constituicao/prompts/05-cycle-goals.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/audit-constituicao/prompts/05-cycle-goals.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-658b25ae5f6d51ce", "name": "Agent authority lacks a verifier contract: .claude/skills/mwart-comparative/TEMPLATE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/mwart-comparative/TEMPLATE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9ea6dd80a12aa7ac", "name": "Agent authority lacks a verifier contract: .claude/skills/memory-first-secret-search/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/memory-first-secret-search/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-475f95216af0b864", "name": "Agent instruction/config may expose a secret: .claude/skills/oimpresso-cc-watcher-setup/SKILL.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/oimpresso-cc-watcher-setup/SKILL.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0922ccc5a469765c", "name": "Agent authority lacks a verifier contract: .claude/skills/officeimpresso-source-analysis/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/officeimpresso-source-analysis/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cf0384ab5daafade", "name": "Agent authority lacks a verifier contract: .claude/skills/personas-resolve/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/personas-resolve/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2946ef859b4e6e11", "name": "Agent authority lacks a verifier contract: .claude/skills/preflight-modulo/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/preflight-modulo/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c7bb95cf80e9fc9a", "name": "Agent authority lacks a verifier contract: .claude/skills/publication-policy/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/publication-policy/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cf1f700608bd17fd", "name": "Commented-code block (5 lines) in stylelint.config.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in stylelint.config.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-ade1f3a940a7fe45", "name": "Commented-code block (7 lines) in vite.inertia.config.mjs:13", "shortDescription": {"text": "Commented-code block (7 lines) in vite.inertia.config.mjs: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-c66fe966ebf5dfd5", "name": "Commented-code block (5 lines) in eslint.config.js:89", "shortDescription": {"text": "Commented-code block (5 lines) in eslint.config.js:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-746f9fd246b6ea17", "name": "Commented-code block (5 lines) in vitest.config.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in vitest.config.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-e49736e1cd3c7b5b", "name": "Commented-code block (6 lines) in tests/numberPtBR.test.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in tests/numberPtBR.test.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-e84645317dac1b1c", "name": "Commented-code block (5 lines) in tests/product-keyboard-nav.test.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in tests/product-keyboard-nav.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b50ef8c8ed5a95a8", "name": "Commented-code block (5 lines) in tests/br-inputs.test.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in tests/br-inputs.test.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-47cdaa1bbf2c4141", "name": "Commented-code block (5 lines) in prototipo-ui/vendas-flow.jsx:171", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/vendas-flow.jsx:171"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6ed222f5075ee7f3", "name": "Commented-code block (8 lines) in prototipo-ui/vendas-page.jsx:65", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/vendas-page.jsx:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d5391d12d8dd2de1", "name": "Commented-code block (7 lines) in prototipo-ui/integrity-check.mjs:8", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/integrity-check.mjs: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-0485606c13d91c6c", "name": "Commented-code block (8 lines) in prototipo-ui/ds-guard.mjs:8", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/ds-guard.mjs: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-1b52821d910d633a", "name": "Commented-code block (5 lines) in prototipo-ui/data-vendas.jsx:314", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/data-vendas.jsx:314"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8174e5eb3a420d56", "name": "Commented-code block (5 lines) in prototipo-ui/vendas-output.jsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/vendas-output.jsx: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-81a15d3d2b6e8061", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-dre/page.ts", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-dre/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-9d994d255bf1dfe8", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/com", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/components/pg-shell-adapters.jsx: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-12336384f2525cb0", "name": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/com", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/components/pg-vendas-integration.jsx: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-1be69e756d1206da", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-trouble", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-trouble-lib.jsx: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-7e8d8eabd7bc808a", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-trouble", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-trouble-editor.jsx: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-e79b3ab0537c0ecd", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-pag", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-page.jsx:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22e8daf1b381d66d", "name": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/tweaks-pan", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/tweaks-panel.jsx: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-1ab1e995725169a1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-inde", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/laravel-panel.jsx:91"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-098eae230b1041d5", "name": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-apl", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-aplus.jsx: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-456025dbd352630e", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-out", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-output.jsx: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-509bb28849291466", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/data.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/data.jsx: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-92168aa5bca665d9", "name": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-page", "shortDescription": {"text": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-page.jsx: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-55d0346193854d5a", "name": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/app.jsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/app.jsx: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-70c96b32e8ec9bd7", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-paths.j", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-paths.jsx:229"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb2b02c7ea92b292", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-fluxo/page.", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-fluxo/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-a91d3ab0ecc21953", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-conciliacao", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-conciliacao/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-f6c4634c6d51c4dd", "name": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/caixa-unificada/inbox-", "shortDescription": {"text": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/caixa-unificada/inbox-page.jsx: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-34697b1432fde9b9", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-plano-conta", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-plano-contas/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-7f8afdf94f2648fc", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-trouble-lib.jsx:", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-trouble-lib.jsx: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-7f6c3423c3a754c9", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-trouble-editor.j", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-trouble-editor.jsx: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-afce0d7dce789a87", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-paths.jsx:229", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-paths.jsx:229"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ae962a7c62fa46a", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-trouble-lib.jsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-trouble-lib.jsx: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-601042ac24b00e9e", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-trouble-editor.jsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-trouble-editor.jsx: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-e49d2d5ff294049f", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-page.jsx:65", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-page.jsx:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee61cc9c4c01d5d3", "name": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/tweaks-panel.jsx:12", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/tweaks-panel.jsx: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-9c442b495d35f6dd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/laravel-panel.jsx:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/laravel-panel.jsx:91"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e70e4605e9007822", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-output.jsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-output.jsx: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-7b8c78afcac3d589", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/data.jsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/data.jsx: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-f8a63be3a9979d1d", "name": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-page.jsx:11", "shortDescription": {"text": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-page.jsx: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-4b50e70b5a165f1c", "name": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/app.jsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/app.jsx: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-de6d42e28ab24c7d", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-paths.jsx:229", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-paths.jsx:229"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eba1fc2aa55ef8b0", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-trouble-lib.jsx: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-9628eee8671bb494", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-trouble-editor.jsx: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-4de358de2cb4c743", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/vendas-page.jsx:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-357bea399929c1db", "name": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/tweaks-panel.jsx: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-175d4036a93c04ff", "name": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-output.jsx: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-6bc3bbe60645a432", "name": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-h", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/laravel-panel.jsx:91"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c2798f3873b7901f", "name": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-ai.jsx: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-55a8ee373e254daa", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/vendas-output.jsx: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-101d8cdd304e1976", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/data.jsx: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-9c3c28c6c7414b7e", "name": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-curation.jsx: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-f1473b0fac0fd398", "name": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-page.jsx: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-41d94a71c184b80e", "name": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/app.jsx: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-6c533f200df8acea", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-paths.jsx:229"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7920b6c24c4bae77", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/cockpit/TweaksPanel.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-183f99adadc41447", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/cockpit/LinkedApps.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-919019aa112a580c", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/cockpit/Thread.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-a8975030c5385d8a", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/cockpit/shared.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-1e5777daf8fe1650", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/cockpit/Sidebar.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-ffa6a7062eaf8b1b", "name": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Layouts/AppShellV2.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-a06359dbbd8b4cbf", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Pages/Copiloto/Chat.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-d71179ec520bfbcc", "name": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Pages/Copiloto/Cockpit.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-40c0fb2e7e4b84bb", "name": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/tweaks-panel.jsx: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-2f43a9855c10fe38", "name": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-h", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/laravel-"}, "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-4f3ab297bfe5e4f7", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/data.jsx: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-4e0945ac709058ef", "name": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/app.jsx: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-4220167a134e1264", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design Syste"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-27ecf2a2342e3559", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design Syste"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b48c5883dccd44e", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design Syste"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c4606be824a7138", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design Syste"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8bf37ccd0073c8c2", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design Syste"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-197d093b3a19f85b", "name": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design Syste"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2f8cdcc0b2a8743e", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design Syste"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-01c56068ea346393", "name": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design Syste"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd3384aee38da6fa", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/r"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a45acf661de5c38", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/r"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc9eb4c6eb15a126", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/r"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fbfe9dc3d77c9cd7", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/r"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4971e4f6a2ecb1b2", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/r"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4500357d99a75ebe", "name": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/tweaks-panel.jsx: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-94532c927b41257b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-h", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/laravel-panel.jsx:91"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-419b13e240b1ee1d", "name": "Legacy-named symbol `questions_v2` in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-b", "shortDescription": {"text": "Legacy-named symbol `questions_v2` in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/boleto-contas-app.jsx:4"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1f49883a04211a8f", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/boleto-contas-app.jsx: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-2b3257658122b07a", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/data.jsx: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-a8cdc4ea7e663616", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/app.jsx: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-85c7f826d3d3a8d2", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/DRE/Index.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-b6c73dabcdf67f4b", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/Fluxo/Index.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-7bf7373f57ad1958", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/PlanoContas/Index.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-c9960ae5c7576899", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/Index.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-78d53893d20c265b", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/Conciliacao/Index.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-27f9e5eaea653249", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/vendas-page.jsx:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c10a1fc5c0a2240c", "name": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-output.jsx: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-b093ab9a064aa1e8", "name": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-ai.jsx: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-85bb39680beeaffa", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/vendas-output.jsx: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-22dd9acec27e7c24", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/data.jsx: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-24f7ebcc5814e696", "name": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-curation.jsx: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-e6901f6199029a9c", "name": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/app.jsx: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-979c1a592e97d2f1", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/DRE/Index.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-b3e93c1b48acae6e", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/Fluxo/Index.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-43c54819cb833fa2", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/PlanoContas/Index.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-b25a540ed446cb6a", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/Index.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-03e4ea0190fd7c6f", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/Conciliacao/Index.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-2fbdd69545731343", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-refino-kb-9.75/vendas-page.jsx:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89331549a3e1177a", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundl", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-refino-kb-9.75/vendas-output.jsx: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-1ea3dd4f2137a129", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-trouble-li", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-trouble-lib.jsx: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-175bc3024827dee1", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-trouble-ed", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-trouble-editor.jsx: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-8d71338c25c56ee5", "name": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/tweaks-panel.", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/tweaks-panel.jsx: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-18ff7ada2069feb8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/l", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/laravel-panel.jsx:91"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-44eb4dda6d104651", "name": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vendas-aplus.", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vendas-aplus.jsx: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-6b02c9ac85219165", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/data.jsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/data.jsx: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-1937b295b524c581", "name": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-page.js", "shortDescription": {"text": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-page.jsx: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-a346d248ae2cc212", "name": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/app.jsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/app.jsx: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-e98056ac8d882b04", "name": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-paths.jsx:", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-paths.jsx:229"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3f1f6318426a949", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/DRE/Index.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-ca23606b1d0ef78f", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/Fluxo/Index.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-462b06304a9fdb09", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/PlanoContas/Index.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-4ced49623ea308e8", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/Index.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-9bcda46e942439cb", "name": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/Conciliacao/Index.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-642620c49a6e934e", "name": "Commented-code block (8 lines) in prototipo-ui/audit/review-gen.mjs:4", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/audit/review-gen.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce13caf4714a92ce", "name": "Commented-code block (7 lines) in prototipo-ui/audit/protocol-freshness.mjs:9", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/audit/protocol-freshness.mjs: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-0cffe9d867e5a864", "name": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-flow.jsx:171", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-flow.jsx:171"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1480feb559b62329", "name": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-trouble-lib.jsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-trouble-lib.jsx: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-46a1a70b6f6c9f7f", "name": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-trouble-editor.jsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-trouble-editor.jsx: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-bd30f6600e2617c9", "name": "Commented-code block (8 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-page.jsx:65", "shortDescription": {"text": "Commented-code block (8 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-page.jsx:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c1bacacad65b7d9d", "name": "Commented-code block (7 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/tweaks-panel.jsx:12", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/tweaks-panel.jsx: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-44d25094f591a211", "name": "Commented-code block (7 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-output.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-output.jsx: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-3ff47781c58f3397", "name": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/laravel-panel.js", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/laravel-panel.jsx:91"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f197900a8e57d750", "name": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-sells-cobranca-preview.js", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-sells-cobranca-preview.jsx: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-48e3b21af5a6989c", "name": "Commented-code block (6 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-ai.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-ai.jsx: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-7a6a145065027e1f", "name": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/data-vendas.jsx:314", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/data-vendas.jsx:314"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49ac9ad2c44e4672", "name": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-output.jsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-output.jsx: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-68d554710e04a0bd", "name": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/data.jsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/data.jsx: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-f205c922ec19fc02", "name": "Commented-code block (6 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-curation.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-curation.jsx: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-4fe848a0a9540245", "name": "Commented-code block (9 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-page.jsx:11", "shortDescription": {"text": "Commented-code block (9 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-page.jsx: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-bedb8a90d1438108", "name": "Commented-code block (6 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/app.jsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/app.jsx: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-82f0f168b37036de", "name": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-shell-adapters.jsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-shell-adapters.jsx: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-4eb833ce4d5d1fbb", "name": "Commented-code block (7 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-vendas-integration.jsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-vendas-integration.jsx: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-e709e06ebc57e524", "name": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-paths.jsx:229", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-paths.jsx:229"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a994a22835ad1cfb", "name": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-u", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-ui/sells-emitir-cobranca-modal.jsx: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-19ddfe1e79997f4d", "name": "Commented-code block (6 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-u", "shortDescription": {"text": "Commented-code block (6 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-ui/design-canvas.jsx:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2343518ae2108ca0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payme", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-ui/design-canvas.jsx: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-201ab9897abb3684", "name": "Commented-code block (7 lines) in prototipo-ui/prototipos/clientes/tweaks-panel.jsx:12", "shortDescription": {"text": "Commented-code block (7 lines) in prototipo-ui/prototipos/clientes/tweaks-panel.jsx: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-434a75b4746966e3", "name": "Commented-code block (5 lines) in prototipo-ui/prototipos/clientes/clientes-975.jsx:28", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/prototipos/clientes/clientes-975.jsx:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4bb2f3d8812a841e", "name": "Commented-code block (5 lines) in prototipo-ui/prototipos/compras-grade-matrix/page.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in prototipo-ui/prototipos/compras-grade-matrix/page.jsx: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-19d09db7bef56d60", "name": "Commented-code block (9 lines) in prototipo-ui/prototipos/caixa-unificada/inbox-page.jsx:11", "shortDescription": {"text": "Commented-code block (9 lines) in prototipo-ui/prototipos/caixa-unificada/inbox-page.jsx: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-cdb7b71e3b1ec32f", "name": "Commented-code block (8 lines) in resources/js/app.tsx:18", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/app.tsx:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad2ebc80a7a22085", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Components/MentionInput.tsx:114", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Components/MentionInput.tsx:114"}, "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-f1fce7b7ac1db4a5", "name": "Commented-code block (6 lines) in resources/js/Components/shared/ConsentBanner.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Components/shared/ConsentBanner.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-ebea981676ad811b", "name": "Commented-code block (6 lines) in resources/js/Components/shared/PwaInstallBanner.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Components/shared/PwaInstallBanner.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-515ae41554013da4", "name": "Commented-code block (6 lines) in resources/js/Components/shared/VendaDerivadaCard.tsx:18", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Components/shared/VendaDerivadaCard.tsx:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-08ff88c3daeab1e1", "name": "Commented-code block (6 lines) in resources/js/Components/ui/numeric-input-ptbr.tsx:12", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Components/ui/numeric-input-ptbr.tsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e9a29ee7c4ad648c", "name": "Commented-code block (5 lines) in resources/js/Components/ui/phone-input.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Components/ui/phone-input.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-366c853d90398352", "name": "Commented-code block (5 lines) in resources/js/Components/cockpit/TweaksPanel.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Components/cockpit/TweaksPanel.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-ca9c01a53ad94f59", "name": "Commented-code block (5 lines) in resources/js/Components/cockpit/LinkedApps.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Components/cockpit/LinkedApps.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-52d575d7ac4ec6d5", "name": "Commented-code block (5 lines) in resources/js/Components/cockpit/Thread.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Components/cockpit/Thread.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-6661b44910466597", "name": "Commented-code block (5 lines) in resources/js/Components/cockpit/shared.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Components/cockpit/shared.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-1547fcb07d91712d", "name": "Commented-code block (8 lines) in resources/js/Components/cockpit/NfeCertBadge.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Components/cockpit/NfeCertBadge.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-c22572a471d56abf", "name": "Legacy-named symbol `fromLegacy` in resources/js/Components/cockpit/Sidebar.tsx:272", "shortDescription": {"text": "Legacy-named symbol `fromLegacy` in resources/js/Components/cockpit/Sidebar.tsx:272"}, "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-671779db1f045a85", "name": "Commented-code block (7 lines) in resources/js/Components/cockpit/Sidebar.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Components/cockpit/Sidebar.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-7a34afac55b2da4e", "name": "Commented-code block (8 lines) in resources/js/Components/NfeBrasil/FiscalStatusBadge.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Components/NfeBrasil/FiscalStatusBadge.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-69c7529e273fba17", "name": "Commented-code block (8 lines) in resources/js/Components/NfeBrasil/NfceStatusBadge.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Components/NfeBrasil/NfceStatusBadge.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-4f6d7dc03526d346", "name": "Commented-code block (5 lines) in resources/js/Components/board/TaskCard.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Components/board/TaskCard.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78362b0366b4038d", "name": "Commented-code block (8 lines) in resources/js/Hooks/useNfceStatus.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Hooks/useNfceStatus.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-096a1b0cb91982e6", "name": "Commented-code block (6 lines) in resources/js/Types/api-schemas/products.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Types/api-schemas/products.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-52bbd69552f62dfe", "name": "Commented-code block (6 lines) in resources/js/Types/api-schemas/customers.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Types/api-schemas/customers.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-e2a1ad25aa7c97e7", "name": "Commented-code block (6 lines) in resources/js/Layouts/AppShellV2.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Layouts/AppShellV2.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-d0d72918bc77d381", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Essentials/Messages/Index.tsx:139", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Essentials/Messages/Index.tsx:139"}, "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-8f41b9cd8fc33444", "name": "Commented-code block (5 lines) in resources/js/Pages/Modules/Index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Modules/Index.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-de72c34713342023", "name": "Commented-code block (6 lines) in resources/js/Pages/StockAdjustment/Index.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/StockAdjustment/Index.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-6c436fbb293fc33a", "name": "Commented-code block (6 lines) in resources/js/Pages/StockAdjustment/Create.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/StockAdjustment/Create.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-8804b2c0241f88fb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Settings/PaymentGateways/Index.tsx:108", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Settings/PaymentGateways/Index.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-2b13459b04c93afe", "name": "Commented-code block (5 lines) in resources/js/Pages/Settings/PaymentGateways/CnabRetorno.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Settings/PaymentGateways/CnabRetorno.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-3427c73330aaa741", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/MemCofre/Chat.tsx:125", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/MemCofre/Chat.tsx:125"}, "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-46440ce222867ace", "name": "Commented-code block (7 lines) in resources/js/Pages/MemCofre/Modulo.tsx:2", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/MemCofre/Modulo.tsx:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-61fa22e146551110", "name": "Commented-code block (5 lines) in resources/js/Pages/ProjectMgmt/Roadmap/Index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/ProjectMgmt/Roadmap/Index.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-57967b7010ea09db", "name": "Commented-code block (5 lines) in resources/js/Pages/ProjectMgmt/Burndown/Index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/ProjectMgmt/Burndown/Index.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-911fd6bbb9c3905e", "name": "Commented-code block (5 lines) in resources/js/Pages/ProjectMgmt/Activity/Index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/ProjectMgmt/Activity/Index.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-a29cacf2fd4ff860", "name": "Commented-code block (6 lines) in resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/ProjectMgmt/MyWork/Index.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-970681e6042ca22f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:163", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:163"}, "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-fb87b95c15abb307", "name": "Commented-code block (7 lines) in resources/js/Pages/ProjectMgmt/Triage/Index.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/ProjectMgmt/Triage/Index.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ee16e3577839704", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Triage/Index.tsx:135", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Triage/Index.tsx:135"}, "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-956b6eef894e087a", "name": "Commented-code block (7 lines) in resources/js/Pages/ProjectMgmt/Inbox/Index.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/ProjectMgmt/Inbox/Index.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6276340d44f6e7a5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Inbox/Index.tsx:138", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Inbox/Index.tsx:138"}, "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-7d989bd9987a639f", "name": "Commented-code block (5 lines) in resources/js/Pages/ProjectMgmt/Backlog/Index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/ProjectMgmt/Backlog/Index.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-747b36be8648e651", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Backlog/Index.tsx:141", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Backlog/Index.tsx:141"}, "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-7e4d63fbb27bc629", "name": "Commented-code block (8 lines) in resources/js/Pages/ProjectMgmt/Board/Index.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/ProjectMgmt/Board/Index.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-9cdf5a23243fc996", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Board/Index.tsx:180", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Board/Index.tsx:180"}, "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-b6909454fed07160", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:211", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:211"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1f40640e6a0605ea", "name": "Commented-code block (6 lines) in resources/js/Pages/StockTransfer/Index.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/StockTransfer/Index.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-0161725b0b3ca6dc", "name": "Commented-code block (6 lines) in resources/js/Pages/StockTransfer/Create.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/StockTransfer/Create.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-d3f9a5de8023ca51", "name": "Commented-code block (6 lines) in resources/js/Pages/ads/Admin/Decisoes.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/ads/Admin/Decisoes.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-1d1d8f53ddf4cc82", "name": "Commented-code block (7 lines) in resources/js/Pages/Whatsapp/Settings.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Whatsapp/Settings.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-79d3a86063e3c69c", "name": "Commented-code block (7 lines) in resources/js/Pages/Whatsapp/Templates/Index.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Whatsapp/Templates/Index.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-7a75cb1122ba9795", "name": "Commented-code block (5 lines) in resources/js/Pages/Whatsapp/_components/ConversationThread.tsx:300", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Whatsapp/_components/ConversationThread.tsx:300"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0117abcb9c619f9f", "name": "Commented-code block (5 lines) in resources/js/Pages/Whatsapp/_components/TemplatePicker.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Whatsapp/_components/TemplatePicker.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-8d81d72a44e853ff", "name": "Commented-code block (5 lines) in resources/js/Pages/Whatsapp/_components/CustomerMemoryBlock.tsx:159", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Whatsapp/_components/CustomerMemoryBlock.tsx:159"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74e2b13d83b2c754", "name": "Commented-code block (5 lines) in resources/js/Pages/Whatsapp/_components/CaptureFeedbackSheet.tsx:128", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Whatsapp/_components/CaptureFeedbackSheet.tsx:128"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad4b55fa442e3999", "name": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/ProvaViva.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/ProvaViva.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-59e38240ef4d11ff", "name": "Commented-code block (5 lines) in resources/js/Pages/Financeiro/Configuracoes/Contador.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Financeiro/Configuracoes/Contador.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-39571fdb8e301068", "name": "Commented-code block (5 lines) in resources/js/Pages/Financeiro/_cowork-bundle/shell-data.jsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Financeiro/_cowork-bundle/shell-data.jsx: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-d8ca64ff2384b244", "name": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/_cowork-bundle/financeiro-output.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/_cowork-bundle/financeiro-output.jsx: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-4463e15c3ed58a47", "name": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/_cowork-bundle/shell-app.jsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/_cowork-bundle/shell-app.jsx: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-dd610b07ec0f4b82", "name": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/_cowork-bundle/financeiro-ai.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/_cowork-bundle/financeiro-ai.jsx: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-1bc88a96bf4dd069", "name": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/_cowork-bundle/financeiro-curation.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/_cowork-bundle/financeiro-curation.jsx: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-3847bc1a3d7758f0", "name": "Commented-code block (8 lines) in resources/js/Pages/Financeiro/Fluxo/Index.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Financeiro/Fluxo/Index.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-bce845e39040c913", "name": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/Cobranca/Index.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/Cobranca/Index.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-657828e9e298e48f", "name": "Commented-code block (8 lines) in resources/js/Pages/Financeiro/Impostos/Index.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Financeiro/Impostos/Index.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-4b76f522cf110264", "name": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Advisor/Dashboard.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Advisor/Dashboard.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-82c2e66881c41dbe", "name": "Legacy-named symbol `_KpiBarLegacy` in resources/js/Pages/Financeiro/Unificado/Index.tsx:944", "shortDescription": {"text": "Legacy-named symbol `_KpiBarLegacy` in resources/js/Pages/Financeiro/Unificado/Index.tsx:944"}, "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-5fd16f567116d20b", "name": "Commented-code block (8 lines) in resources/js/Pages/Financeiro/Unificado/Index.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Financeiro/Unificado/Index.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-a3c9cbbafe5bb72e", "name": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinSubNav.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinSubNav.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-a3d44bc458963bc5", "name": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinCrossLinkify.tsx:8", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinCrossLinkify.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-2a1f966594a5fbb8", "name": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Unificado/_components/TituloEditSheet.tsx:4", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Unificado/_components/TituloEditSheet.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-74ff12c568c1c24d", "name": "Commented-code block (5 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinPresentationMode.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinPresentationMode.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-848a684ff7b1598b", "name": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinPillFrescor.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinPillFrescor.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-79213f7af16fbda0", "name": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinAgeing.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinAgeing.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-a30de64f1a52c05a", "name": "Commented-code block (5 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinTroubleshooter.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinTroubleshooter.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-cb11b1425a85545d", "name": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/Unificado/_components/PlanoContaCombobox.tsx:11", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/Unificado/_components/PlanoContaCombobox.tsx: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-67f1c2ddd121e90a", "name": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Dre/Index.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Dre/Index.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-de6f303e48770765", "name": "Legacy-named symbol `cash_register_legacy` in resources/js/Pages/Financeiro/Caixa/Index.tsx:45", "shortDescription": {"text": "Legacy-named symbol `cash_register_legacy` in resources/js/Pages/Financeiro/Caixa/Index.tsx:45"}, "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-43bab260915ed6e5", "name": "Commented-code block (8 lines) in resources/js/Pages/Financeiro/_shared/FinStatStrip.tsx:3", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Financeiro/_shared/FinStatStrip.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a5c7beaa5980d4bd", "name": "Commented-code block (7 lines) in resources/js/Pages/RecurringBilling/Index.tsx:1394", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/RecurringBilling/Index.tsx:1394"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19abc23df62c956b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/RecurringBilling/Index.tsx:1221", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/RecurringBilling/Index.tsx:1221"}, "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-86aefbbdf9599782", "name": "Commented-code block (5 lines) in resources/js/Pages/RecurringBilling/Configuracoes/Index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/RecurringBilling/Configuracoes/Index.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-21e9efa2945ae6a2", "name": "Commented-code block (5 lines) in resources/js/Pages/RecurringBilling/Planos/Index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/RecurringBilling/Planos/Index.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-628eb8844ddd6f36", "name": "Commented-code block (7 lines) in resources/js/Pages/Cliente/Index.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Cliente/Index.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-ab03d92a27b60628", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/Index.tsx:576", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/Index.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-2f5584a378f31d7d", "name": "Commented-code block (6 lines) in resources/js/Pages/Cliente/Show.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Cliente/Show.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-939e53983f793cf8", "name": "Commented-code block (7 lines) in resources/js/Pages/Cliente/_form/DadosFiscaisBRSection.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Cliente/_form/DadosFiscaisBRSection.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-a7040e9b3dd91140", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/SubscriptionsTab.tsx:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/SubscriptionsTab.tsx:23"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9fbf17a729c95071", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/RewardPointsTab.tsx:35", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/RewardPointsTab.tsx:35"}, "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-482251e33e842b2e", "name": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_show/PaymentsTab.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_show/PaymentsTab.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-ed5e8f8548113554", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/PaymentsTab.tsx:107", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/PaymentsTab.tsx:107"}, "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-9d7ef242d8356055", "name": "Commented-code block (7 lines) in resources/js/Pages/Cliente/_show/ActionsMenu.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Cliente/_show/ActionsMenu.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-6298b263cada1fe9", "name": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_show/LedgerTab.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_show/LedgerTab.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-b9d4dddbc0766a2c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/LedgerTab.tsx:131", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/LedgerTab.tsx:131"}, "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-224248fa3d72e6d5", "name": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_show/DocumentsTab.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_show/DocumentsTab.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-9429bf0d0febc4cc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/DocumentsTab.tsx:185", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/DocumentsTab.tsx:185"}, "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-709ca5610a023c5b", "name": "Commented-code block (7 lines) in resources/js/Pages/Cliente/_show/SalesTab.tsx:8", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Cliente/_show/SalesTab.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-4942d35970035f6a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/SalesTab.tsx:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/SalesTab.tsx:11"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f7ff0b56fa6ec866", "name": "Legacy-named symbol `lang_v1` in resources/js/Pages/Cliente/_show/ActivitiesTab.tsx:66", "shortDescription": {"text": "Legacy-named symbol `lang_v1` in resources/js/Pages/Cliente/_show/ActivitiesTab.tsx:66"}, "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-149d27f60ca5134b", "name": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_drawer/ContatoTab.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_drawer/ContatoTab.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-6082be82403d0a0a", "name": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:11", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx: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-40b57a556881591d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:323", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:323"}, "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-f1ce8d9505eab8d1", "name": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_drawer/IATab.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_drawer/IATab.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db39c2270a695d48", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_drawer/PlacasMainTab.tsx:84", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_drawer/PlacasMainTab.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-213643bdfae5fedb", "name": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_drawer/AuditoriaTab.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_drawer/AuditoriaTab.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-39ab52fe5454360b", "name": "Commented-code block (10 lines) in resources/js/Pages/Cliente/_drawer/ComercialTab.tsx:10", "shortDescription": {"text": "Commented-code block (10 lines) in resources/js/Pages/Cliente/_drawer/ComercialTab.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-02c337f7421e7ded", "name": "Commented-code block (8 lines) in resources/js/Pages/Cliente/_drawer/EnderecoTab.tsx:12", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Cliente/_drawer/EnderecoTab.tsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f99ccd5b1617f4d", "name": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_drawer/OssTab.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_drawer/OssTab.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-63e18daa57089b1f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_drawer/OssTab.tsx:200", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_drawer/OssTab.tsx:200"}, "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-75c6e3a939207ce2", "name": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:12", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-acba91b33cb9f2b6", "name": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_drawer/ClassificacaoTab.tsx:10", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_drawer/ClassificacaoTab.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-bbcbcd09aa599b75", "name": "Commented-code block (7 lines) in resources/js/Pages/Cliente/_components/Pills.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Cliente/_components/Pills.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fae3aa0c73b31f8b", "name": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_components/Avatar.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_components/Avatar.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-3aa45bf395dd4671", "name": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_components/KpiStripClickable.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_components/KpiStripClickable.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-1e95659521954f22", "name": "Commented-code block (5 lines) in resources/js/Pages/Manufacturing/Index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Manufacturing/Index.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-260e4b997953e5ec", "name": "Commented-code block (7 lines) in resources/js/Pages/Repair/ProducaoOficina/Index.tsx:6", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Repair/ProducaoOficina/Index.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-c6aed686e8b38dc1", "name": "Commented-code block (6 lines) in resources/js/Pages/Repair/JobSheet/Index.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Repair/JobSheet/Index.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-19557d2dbad7aa3c", "name": "Commented-code block (11 lines) in resources/js/Pages/Repair/JobSheet/AddParts.tsx:5", "shortDescription": {"text": "Commented-code block (11 lines) in resources/js/Pages/Repair/JobSheet/AddParts.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-539b2db16f1f9e6d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Repair/JobSheet/AddParts.tsx:115", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Repair/JobSheet/AddParts.tsx:115"}, "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-f5754ed8a360f104", "name": "Commented-code block (8 lines) in resources/js/Pages/Repair/JobSheet/Create.tsx:5", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Repair/JobSheet/Create.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-aef68bfbbddfa23a", "name": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/JanaTemplates.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/JanaTemplates.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-2c00f6bc51c625f8", "name": "Commented-code block (6 lines) in resources/js/Pages/Atendimento/Csat/Index.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Atendimento/Csat/Index.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-bf78655b1e2d2f2e", "name": "Commented-code block (6 lines) in resources/js/Pages/Atendimento/Macros/Variants.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Atendimento/Macros/Variants.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-2fe4f18151219e9f", "name": "Commented-code block (6 lines) in resources/js/Pages/Atendimento/Macros/Index.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Atendimento/Macros/Index.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-bef269021d0d83e1", "name": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/Metricas/Index.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/Metricas/Index.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-882c548908484afc", "name": "Commented-code block (9 lines) in resources/js/Pages/Atendimento/CaixaUnificada/Index.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in resources/js/Pages/Atendimento/CaixaUnificada/Index.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-8ee4b9ca96d23322", "name": "Commented-code block (12 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ComposerV4.tsx:3", "shortDescription": {"text": "Commented-code block (12 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ComposerV4.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a48682574a3add61", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ComposerV4.tsx:2", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ComposerV4.tsx:204"}, "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-e692a54c470bcfb5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/InboxAiDialog.ts", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/InboxAiDialog.tsx:46"}, "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-5132cabdfdf648dc", "name": "Commented-code block (5 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ChannelsDrawer.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ChannelsDrawer.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-73e88f9a6a7c7a5e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/BroadcastSheet.t", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/BroadcastSheet.tsx:78"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-14cf36a4f1fbb581", "name": "Commented-code block (9 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ContextSidebarV4.tsx:6", "shortDescription": {"text": "Commented-code block (9 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ContextSidebarV4.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-b72bcd96d44d97b3", "name": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ConversationListV4.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ConversationListV4.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fada663fe9407eee", "name": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ConversationThreadV4.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ConversationThreadV4.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44e1b5fe8a70012a", "name": "Commented-code block (5 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/NewConversationDialog.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/NewConversationDialog.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-92ce4635fa5a6e5d", "name": "Commented-code block (5 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ChannelChipsRow.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ChannelChipsRow.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1f4d5724b8ccae5", "name": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/Channels/Index.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/Channels/Index.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-9a4f0a49db387169", "name": "Commented-code block (6 lines) in resources/js/Pages/Atendimento/Channels/Show.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Atendimento/Channels/Show.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-29c6c7e7ffc61d7c", "name": "Commented-code block (5 lines) in resources/js/Pages/team-mcp/CcSessions/Index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/team-mcp/CcSessions/Index.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-6ad9ef7fe727fb39", "name": "Commented-code block (7 lines) in resources/js/Pages/team-mcp/Team/Index.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/team-mcp/Team/Index.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-4d3b74c6d7e0de0e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/team-mcp/Team/Index.tsx:172", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/team-mcp/Team/Index.tsx:172"}, "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-3ce64abb4b859b8f", "name": "Commented-code block (7 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviPhotoGrid.tsx:11", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviPhotoGrid.tsx: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-174fa22098254bb5", "name": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/LaudoPhotoSection.tsx:15", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/LaudoPhotoSection.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-c4edd4a89a4a4136", "name": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/KanbanDndProvider.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/KanbanDndProvider.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c57eefb355da8b75", "name": "Commented-code block (7 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DragConfirmDialog.tsx:8", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DragConfirmDialog.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-cf3a11b17c37a98c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DragConfirmDial", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DragConfirmDialog.tsx:12"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-284ee1316f795a38", "name": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceOrderRichSheet.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceOrderRichSheet.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-d018d7e0d7ccc8e2", "name": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviInlineEditor.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviInlineEditor.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-0924ff8e36f22dc6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviInlineEditor", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviInlineEditor.tsx:257"}, "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-6b641f3ff4496c03", "name": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/Edit.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/Edit.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-b2d4f3185c8d28fc", "name": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/Show.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/Show.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-795255639d9edda0", "name": "Commented-code block (15 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/Create.tsx:5", "shortDescription": {"text": "Commented-code block (15 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/Create.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-1a138d686ca23578", "name": "Commented-code block (12 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx:24", "shortDescription": {"text": "Commented-code block (12 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e2a6314efb736d8a", "name": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStagePipeline.tsx", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStagePipeline.tsx:118"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-df83fc03967115c3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStage", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStagePipeline.tsx:35"}, "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-eae4f196e11d02fd", "name": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/ApprovalGateCard.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/ApprovalGateCard.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-4b742e7ed7e2125b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderTimel", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderTimeline.tsx:83"}, "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-1d5545ad110194fa", "name": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/FiscalSplitCard.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/FiscalSplitCard.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-af0e0afccabad1d8", "name": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/boardTone.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/boardTone.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-86f03db754ce9767", "name": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/ServiceOrderKanbanCard.", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/ServiceOrderKanbanCard.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3de22ebd4922374f", "name": "Commented-code block (9 lines) in resources/js/Pages/OficinaAuto/Vehicles/Index.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in resources/js/Pages/OficinaAuto/Vehicles/Index.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-45ffd2d838c1e0df", "name": "Commented-code block (8 lines) in resources/js/Pages/OficinaAuto/Vehicles/_components/VehicleStatusBadge.tsx:6", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/OficinaAuto/Vehicles/_components/VehicleStatusBadge.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-a12909b43a2fd7a1", "name": "Commented-code block (5 lines) in resources/js/Pages/Produto/Index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Produto/Index.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-91d7f1772b33a2cc", "name": "Commented-code block (5 lines) in resources/js/Pages/Produto/SellingPrices.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Produto/SellingPrices.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-a7b30d63a26d9e7b", "name": "Commented-code block (5 lines) in resources/js/Pages/Auditoria/Index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Auditoria/Index.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-4f78677ef8a91a2a", "name": "Commented-code block (5 lines) in resources/js/Pages/Auditoria/Detail.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Auditoria/Detail.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-56352a9a13a10a0e", "name": "Commented-code block (5 lines) in resources/js/Pages/Admin/Index.tsx:176", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Admin/Index.tsx:176"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5dafd0de6e645cff", "name": "Commented-code block (6 lines) in resources/js/Pages/Admin/ScreenReviewDashboard.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Admin/ScreenReviewDashboard.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-4e931891de73c3f4", "name": "Legacy-named symbol `kb_v2` in resources/js/Pages/Admin/GovernanceV4.tsx:9", "shortDescription": {"text": "Legacy-named symbol `kb_v2` in resources/js/Pages/Admin/GovernanceV4.tsx:9"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b2a9111ed8b0db9", "name": "Commented-code block (7 lines) in resources/js/Pages/Admin/GovernanceV4.tsx:8", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Admin/GovernanceV4.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-899edfd16012522d", "name": "Commented-code block (6 lines) in resources/js/Pages/Admin/ScreenReview.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Admin/ScreenReview.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-1091e8363fa8e33a", "name": "Legacy-named symbol `kb_v2` in resources/js/Pages/Admin/_components/SparklineTrend.tsx:7", "shortDescription": {"text": "Legacy-named symbol `kb_v2` in resources/js/Pages/Admin/_components/SparklineTrend.tsx:7"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-effd32e3bb47331f", "name": "Legacy-named symbol `kb_v2` in resources/js/Pages/Admin/_components/BucketSidebar.tsx:20", "shortDescription": {"text": "Legacy-named symbol `kb_v2` in resources/js/Pages/Admin/_components/BucketSidebar.tsx: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-71f2c93ded841d3d", "name": "Legacy-named symbol `kb_v2` in resources/js/Pages/Admin/_components/governanceV4Types.ts:4", "shortDescription": {"text": "Legacy-named symbol `kb_v2` in resources/js/Pages/Admin/_components/governanceV4Types.ts:4"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-961f4fa6ba93ea13", "name": "Commented-code block (6 lines) in resources/js/Pages/NfeBrasil/Transactions/NfceStatus.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/NfeBrasil/Transactions/NfceStatus.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-370f3720cfe6caef", "name": "Commented-code block (5 lines) in resources/js/Pages/NfeBrasil/Manifestacao/Index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/NfeBrasil/Manifestacao/Index.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-4a20e85810e9452f", "name": "Commented-code block (8 lines) in resources/js/Pages/Jana/Chat.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Jana/Chat.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-a168c4ac331b9beb", "name": "Commented-code block (6 lines) in resources/js/Pages/Jana/Pro.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Jana/Pro.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-e44f1ed4c351896e", "name": "Commented-code block (10 lines) in resources/js/Pages/Jana/Cockpit.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in resources/js/Pages/Jana/Cockpit.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-a535352a89037e1d", "name": "Commented-code block (5 lines) in resources/js/Pages/Jana/components/JanaCockpitV2.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Jana/components/JanaCockpitV2.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-6296367779b76e53", "name": "Commented-code block (7 lines) in resources/js/Pages/Jana/components/JanaAreaHeader.tsx:10", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Jana/components/JanaAreaHeader.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-462184e2cc92d4b0", "name": "Commented-code block (8 lines) in resources/js/Pages/Jana/Admin/Roadmap.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Jana/Admin/Roadmap.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-beae107dff229ce2", "name": "Commented-code block (8 lines) in resources/js/Pages/Jana/Admin/Governanca/Index.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Jana/Admin/Governanca/Index.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-99709960675f03b2", "name": "Commented-code block (8 lines) in resources/js/Pages/Jana/Admin/Custos/Index.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Jana/Admin/Custos/Index.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-ab55f4eb8ec971c1", "name": "Commented-code block (5 lines) in resources/js/Pages/Jana/Admin/Qualidade/Index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Jana/Admin/Qualidade/Index.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-b9ed6014f48faeff", "name": "Commented-code block (8 lines) in resources/js/Pages/Jana/_components/AssistantUiChat.tsx:6", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Jana/_components/AssistantUiChat.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-ad4441c9448956af", "name": "Commented-code block (7 lines) in resources/js/Pages/Vestuario/Etiquetas/Index.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Vestuario/Etiquetas/Index.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-7ec2ef48214ba857", "name": "Commented-code block (7 lines) in resources/js/Pages/Tarefas/Index.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Tarefas/Index.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-017129af6995846f", "name": "Commented-code block (7 lines) in resources/js/Pages/Purchase/Index.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Purchase/Index.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-e1dc36f58d1d236d", "name": "Commented-code block (6 lines) in resources/js/Pages/Purchase/Edit.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Purchase/Edit.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-22b429bd798741b2", "name": "Commented-code block (6 lines) in resources/js/Pages/Purchase/Show.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Purchase/Show.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-00ff52e1b0e2a59b", "name": "Commented-code block (6 lines) in resources/js/Pages/Purchase/Create.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Purchase/Create.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-4e705101f484fc26", "name": "Commented-code block (5 lines) in resources/js/Pages/_Showcase/Components.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/_Showcase/Components.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-73e028e6b873793d", "name": "Commented-code block (7 lines) in resources/js/Pages/Sells/Index.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Sells/Index.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-8d5185965766916f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/Index.tsx:708", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/Index.tsx:708"}, "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-82320214b241f1aa", "name": "Commented-code block (5 lines) in resources/js/Pages/Sells/Edit.tsx:50", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/Edit.tsx:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f58915839934495", "name": "Commented-code block (5 lines) in resources/js/Pages/Sells/Create.tsx:339", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/Create.tsx:339"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-acaccf6c6fad6812", "name": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/VdNfseEmitModal.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/VdNfseEmitModal.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-fea7fc35ac4866f2", "name": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/SaleAuditTrail.tsx:9", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/SaleAuditTrail.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-183ba65e6572141f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/SaleAuditTrail.tsx:184", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/SaleAuditTrail.tsx:184"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-45bc9536e2710306", "name": "Commented-code block (8 lines) in resources/js/Pages/Sells/_components/CustomerSearchAutocomplete.tsx:240", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Sells/_components/CustomerSearchAutocomplete.tsx:240"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eedd2ac32008973d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/CustomerSearchAutocomplete.tsx:131", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/CustomerSearchAutocomplete.tsx:131"}, "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-28b1cdc3eb25e415", "name": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/QuickPaymentPopover.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/QuickPaymentPopover.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-4176c4170dc51f88", "name": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/VdSource.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/VdSource.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-aa8df2fff0a803a2", "name": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/VdNextActionPanel.tsx:192", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/VdNextActionPanel.tsx:192"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e00cc8a5696d4ace", "name": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleTranscriptPDF.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleTranscriptPDF.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-45d5ca1d4e9de624", "name": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SellsCheatSheet.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SellsCheatSheet.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-122843f31b11fb25", "name": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/SellsTabelaUnificada.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/SellsTabelaUnificada.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-8926af8e7b4f8324", "name": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleOrcamentoA4.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleOrcamentoA4.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-8ad42ae39605e6aa", "name": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleReciboPrint80mm.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleReciboPrint80mm.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-2b997065c0e9eb8f", "name": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/QuickPaymentDialog.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/QuickPaymentDialog.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-2bb2ba903369632a", "name": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/QuickAddVehicleSheet.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/QuickAddVehicleSheet.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-6e72fd7cabc66bdf", "name": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/CommissionSplitEditor.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/CommissionSplitEditor.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-0f9ec137feaf475f", "name": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/QuickAddCustomerSheet.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/QuickAddCustomerSheet.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-1fc3d0c5f1d9f71e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/QuickAddCustomerSheet.tsx:105", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/QuickAddCustomerSheet.tsx:105"}, "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-5d02a47848ea22f4", "name": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleJourneyStepper.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleJourneyStepper.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2918ff66f5f5a633", "name": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleTimeline.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleTimeline.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-85526cb7c2e94623", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/SaleTimeline.tsx:101", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/SaleTimeline.tsx:101"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3a1784e7db75f38b", "name": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/ProductSearchAutocomplete.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-8dce84a94a9839d7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:221", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:221"}, "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-d023d4a4a6b4c486", "name": "Commented-code block (7 lines) in resources/js/Pages/Sells/_components/PaymentRow.tsx:6", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Sells/_components/PaymentRow.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-0305750de60ab887", "name": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/SaleAiPanel.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/SaleAiPanel.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-148c1d8e56c8f267", "name": "Commented-code block (9 lines) in resources/js/Pages/Sells/Caixa/Index.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in resources/js/Pages/Sells/Caixa/Index.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-1b74b56573977712", "name": "Commented-code block (6 lines) in resources/js/Pages/Compras/components/AcoesDropdown.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Compras/components/AcoesDropdown.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-ae794059c5967d76", "name": "Commented-code block (7 lines) in resources/js/Pages/Compras/components/GradeMatrixInput.tsx:10", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Compras/components/GradeMatrixInput.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-a913e0424bc9a708", "name": "Commented-code block (6 lines) in resources/js/Pages/kb/Index.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/kb/Index.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-2ab4abe25fb5876b", "name": "Commented-code block (6 lines) in resources/js/Pages/kb/Index.v2.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/kb/Index.v2.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-839fc47889f7fdb5", "name": "Commented-code block (11 lines) in resources/js/Pages/kb/_lib/graphLayout.ts:36", "shortDescription": {"text": "Commented-code block (11 lines) in resources/js/Pages/kb/_lib/graphLayout.ts:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7bfe97d1ddbefa8", "name": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/Dfe.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/Dfe.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-17510971deff56e5", "name": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/Config.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/Config.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-0314e6adbf0c6433", "name": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/Eventos.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/Eventos.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-757c4de2e7ebfe46", "name": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/Nfe.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/Nfe.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-cfede9c03f9a6dcc", "name": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/Nfse.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/Nfse.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-770fa4c214bd7307", "name": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/Cockpit.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/Cockpit.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-f5fca0eb7a7a3f59", "name": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/Sped.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/Sped.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-5d537667785a1faf", "name": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_lib/sefaz-codes.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_lib/sefaz-codes.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-fbeac51a56a2ebe6", "name": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_lib/sefaz-actions.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_lib/sefaz-actions.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-8b00752033238634", "name": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_components/NotaDrawer.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_components/NotaDrawer.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-e52dcc4fd615845d", "name": "Commented-code block (6 lines) in resources/js/Pages/Fiscal/_components/CmdKPalette.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/Fiscal/_components/CmdKPalette.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aa6c9bf5f12d5e5d", "name": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_components/SendToContabilDrawer.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_components/SendToContabilDrawer.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a369445d54c2f08f", "name": "Commented-code block (7 lines) in resources/js/Pages/Fiscal/_components/NotaDrawerV2.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Pages/Fiscal/_components/NotaDrawerV2.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-81b7163ec0640ce5", "name": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_components/InutilizacaoModal.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_components/InutilizacaoModal.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-982c0bd0c98cd390", "name": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/_components/_shared/DrawerBase.tsx:6", "shortDescription": {"text": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/_components/_shared/DrawerBase.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-3c689a6099afefb3", "name": "Commented-code block (5 lines) in resources/js/Pages/superadmin/Usuario360/Index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Pages/superadmin/Usuario360/Index.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-dc8bdbcf6351b1c9", "name": "Commented-code block (6 lines) in resources/js/Pages/superadmin/Usuario360/Show.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Pages/superadmin/Usuario360/Show.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-14ca74e14d4d5fc2", "name": "Commented-code block (6 lines) in resources/js/Lib/clarity.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Lib/clarity.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-7a885d11f0682166", "name": "Commented-code block (5 lines) in resources/js/Lib/oimpressoToast.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in resources/js/Lib/oimpressoToast.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-70c253b7b27b4d9c", "name": "Commented-code block (6 lines) in resources/js/Lib/consent.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/Lib/consent.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-cf621d10bedcf39d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Lib/consent.ts:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Lib/consent.ts:44"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-217719b02c5f3156", "name": "Commented-code block (9 lines) in resources/js/Lib/numberPtBR.ts:9", "shortDescription": {"text": "Commented-code block (9 lines) in resources/js/Lib/numberPtBR.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-2224cdbe8ccf48d1", "name": "Commented-code block (10 lines) in resources/js/Lib/printSaleReceipt.ts:3", "shortDescription": {"text": "Commented-code block (10 lines) in resources/js/Lib/printSaleReceipt.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-7f8311717e0327f7", "name": "Commented-code block (12 lines) in resources/js/Lib/printServiceOrder.ts:7", "shortDescription": {"text": "Commented-code block (12 lines) in resources/js/Lib/printServiceOrder.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-efd8fb77c47550be", "name": "Commented-code block (7 lines) in resources/js/Lib/validacoesFiscaisBr.ts:116", "shortDescription": {"text": "Commented-code block (7 lines) in resources/js/Lib/validacoesFiscaisBr.ts: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-a4ae78aa3e886bed", "name": "Commented-code block (5 lines) in resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js:294", "shortDescription": {"text": "Commented-code block (5 lines) in resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js:2949"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0823f84ad0aae83", "name": "Commented-code block (5 lines) in resources/plugins/AdminLTE/plugins/fullcalendar/fullcalendar.js:874", "shortDescription": {"text": "Commented-code block (5 lines) in resources/plugins/AdminLTE/plugins/fullcalendar/fullcalendar.js:874"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1bfe304c109db7c9", "name": "Commented-code block (9 lines) in resources/plugins/AdminLTE/plugins/DataTables/JSZip-2.5.0/jszip.js:1132", "shortDescription": {"text": "Commented-code block (9 lines) in resources/plugins/AdminLTE/plugins/DataTables/JSZip-2.5.0/jszip.js:1132"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6c5408c09d80a455", "name": "Commented-code block (10 lines) in resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables", "shortDescription": {"text": "Commented-code block (10 lines) in resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables.js:1348"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d082b271c7553a77", "name": "Commented-code block (5 lines) in resources/plugins/AdminLTE/plugins/DataTables/Responsive-2.2.0/js/dataTables.responsiv", "shortDescription": {"text": "Commented-code block (5 lines) in resources/plugins/AdminLTE/plugins/DataTables/Responsive-2.2.0/js/dataTables.responsive.js:374"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d921bbcc1987777d", "name": "Commented-code block (8 lines) in resources/plugins/AdminLTE/plugins/DataTables/AutoFill-2.2.2/js/dataTables.autoFill.js", "shortDescription": {"text": "Commented-code block (8 lines) in resources/plugins/AdminLTE/plugins/DataTables/AutoFill-2.2.2/js/dataTables.autoFill.js: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-17a534f4aa2352ec", "name": "Commented-code block (5 lines) in resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.js:14916", "shortDescription": {"text": "Commented-code block (5 lines) in resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.js:14916"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-05e1e81bb29e96b9", "name": "Commented-code block (9 lines) in resources/plugins/jKanban/jKanbanBoard.js:435", "shortDescription": {"text": "Commented-code block (9 lines) in resources/plugins/jKanban/jKanbanBoard.js:435"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4df72ae0a33dcfcf", "name": "Legacy-named symbol `toLegacy` in resources/plugins/fullcalendar/fullcalendar.min.js:6", "shortDescription": {"text": "Legacy-named symbol `toLegacy` in resources/plugins/fullcalendar/fullcalendar.min.js:6"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2ae1018396fb32bb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/fullcalendar/fullcalendar.min.js:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/fullcalendar/fullcalendar.min.js:9"}, "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-64b799a5967747fa", "name": "Legacy-named symbol `toLegacy` in resources/plugins/fullcalendar/fullcalendar.d.ts:471", "shortDescription": {"text": "Legacy-named symbol `toLegacy` in resources/plugins/fullcalendar/fullcalendar.d.ts:471"}, "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-2b1f7065403b504f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/fullcalendar/fullcalendar.d.ts:640", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/fullcalendar/fullcalendar.d.ts:640"}, "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-2b05eb171e81e919", "name": "Legacy-named symbol `toLegacy` in resources/plugins/fullcalendar/fullcalendar.js:1579", "shortDescription": {"text": "Legacy-named symbol `toLegacy` in resources/plugins/fullcalendar/fullcalendar.js:1579"}, "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-d48f07e19bcfa638", "name": "Commented-code block (5 lines) in resources/plugins/fullcalendar/fullcalendar.js:272", "shortDescription": {"text": "Commented-code block (5 lines) in resources/plugins/fullcalendar/fullcalendar.js:272"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-812f99519b1674f5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/fullcalendar/fullcalendar.js:8708", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/fullcalendar/fullcalendar.js:8708"}, "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-40a4f0b35580b6e7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/bootstrap-fileinput/fileinput.min.js:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/bootstrap-fileinput/fileinput.min.js: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-15c9c245548bec95", "name": "Commented-code block (5 lines) in resources/plugins/jquery-validation-1.16.0/test/test.js:2170", "shortDescription": {"text": "Commented-code block (5 lines) in resources/plugins/jquery-validation-1.16.0/test/test.js:2170"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-744f9f6fd633eadf", "name": "Commented-code block (7 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js:1469", "shortDescription": {"text": "Commented-code block (7 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js:1469"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b42a6fadeacb008d", "name": "Commented-code block (6 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:1509", "shortDescription": {"text": "Commented-code block (6 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:1509"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-118a558015155835", "name": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/jquery-validation-1.16.0/lib/require.js:19", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/jquery-validation-1.16.0/lib/require.js:19"}, "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-b90708a22918ed7d", "name": "Commented-code block (6 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:1392", "shortDescription": {"text": "Commented-code block (6 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:1392"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-edab1c1b9edec529", "name": "Commented-code block (7 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.11.1.js:18", "shortDescription": {"text": "Commented-code block (7 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.11.1.js:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-037ff1b8d6594cc5", "name": "Legacy-named symbol `pdataOld` in resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js:5656", "shortDescription": {"text": "Legacy-named symbol `pdataOld` in resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js:5656"}, "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-6a711d6498cdd97d", "name": "Commented-code block (7 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js:20", "shortDescription": {"text": "Commented-code block (7 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a182d530695a7f77", "name": "Commented-code block (14 lines) in resources/plugins/jquery-validation-1.16.0/src/core.js:276", "shortDescription": {"text": "Commented-code block (14 lines) in resources/plugins/jquery-validation-1.16.0/src/core.js:276"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2656b2c403577cf", "name": "Commented-code block (5 lines) in resources/plugins/jquery-validation-1.16.0/src/additional/iban.js:22", "shortDescription": {"text": "Commented-code block (5 lines) in resources/plugins/jquery-validation-1.16.0/src/additional/iban.js:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-158500638cffe260", "name": "Commented-code block (5 lines) in scripts/design-spec-gen.mjs:4", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/design-spec-gen.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1069eea7cc06b8d", "name": "Commented-code block (8 lines) in scripts/casos-results-collect.mjs:5", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/casos-results-collect.mjs: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-f1f9c2bdb4f0b65b", "name": "Commented-code block (7 lines) in scripts/domain-dict-guard.mjs:4", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/domain-dict-guard.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66db70fc26bdd169", "name": "Commented-code block (6 lines) in scripts/ds-canon-color-guard.mjs:4", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/ds-canon-color-guard.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c00a1cfc505ac882", "name": "Commented-code block (5 lines) in scripts/conformance-gate.mjs:33", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/conformance-gate.mjs:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7fc81d1996c14bc3", "name": "Commented-code block (7 lines) in scripts/no-mock-in-prod.mjs:4", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/no-mock-in-prod.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5cc8b9073dd876e6", "name": "Commented-code block (10 lines) in scripts/layout-primitives-guard.mjs:4", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/layout-primitives-guard.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-55d540773bbc8512", "name": "Commented-code block (8 lines) in scripts/ds-report.mjs:10", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/ds-report.mjs: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-56aff5e7085a700b", "name": "Commented-code block (8 lines) in scripts/components-tree-guard.mjs:4", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/components-tree-guard.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7960a1c8f9d8cf9e", "name": "Commented-code block (5 lines) in scripts/gen-mapa-telas.py:58", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/gen-mapa-telas.py: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-fede12dd071641b6", "name": "Commented-code block (7 lines) in scripts/casos-coverage-guard.mjs:5", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/casos-coverage-guard.mjs: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-515015f9ebd501dd", "name": "Commented-code block (8 lines) in scripts/ds-ledger.mjs:4", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/ds-ledger.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de95b83a4fd36e53", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/jana-ragas-runner.py:71", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/jana-ragas-runner.py:71"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e39d807fc31d2205", "name": "Commented-code block (6 lines) in scripts/reuse-index.mjs:11", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/reuse-index.mjs: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-f3946d27cfbfefd9", "name": "Commented-code block (5 lines) in scripts/governance/ghost-fix.mjs:4", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/governance/ghost-fix.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a00e753e2c7b84b4", "name": "Commented-code block (8 lines) in scripts/governance/protection-drift.mjs:6", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/governance/protection-drift.mjs: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-1e5f7e2e60360e88", "name": "Commented-code block (5 lines) in scripts/governance/knowledge-drift.mjs:4", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/governance/knowledge-drift.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-54d8823c3e4cb82b", "name": "Legacy-named symbol `anchor_format_v1` in scripts/governance/anchor-lint.mjs:132", "shortDescription": {"text": "Legacy-named symbol `anchor_format_v1` in scripts/governance/anchor-lint.mjs:132"}, "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-90038a8384e2f118", "name": "Commented-code block (5 lines) in scripts/governance/anchor-lint.mjs:5", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/governance/anchor-lint.mjs: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-14301854d6395fc2", "name": "Commented-code block (5 lines) in scripts/governance/sdd-scorecard.mjs:10", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/governance/sdd-scorecard.mjs: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-840e446c7b8e567a", "name": "Commented-code block (5 lines) in scripts/governance/gate-selftest.mjs:5", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/governance/gate-selftest.mjs: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-beb1ec67db3fd09b", "name": "Commented-code block (5 lines) in scripts/governance/memory-health.mjs:210", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/governance/memory-health.mjs:210"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b686cb4350b687ec", "name": "Commented-code block (5 lines) in scripts/governance/ledger-check.mjs:5", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/governance/ledger-check.mjs: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-6f9e15ad4265a9a0", "name": "Commented-code block (5 lines) in scripts/cc-watcher/index.js:10", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/cc-watcher/index.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7ea3b1ddd75e8cf", "name": "Commented-code block (6 lines) in scripts/tests/foundation-ratchet.mjs:4", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/tests/foundation-ratchet.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-61381e54565e6c9c", "name": "Commented-code block (6 lines) in scripts/curador/apply.mjs:2", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/curador/apply.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-552b434c9dbc58c0", "name": "Commented-code block (6 lines) in scripts/curador/report.mjs:2", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/curador/report.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5038a891f7712d34", "name": "Legacy-named symbol `delphi_legacy` in scripts/legacy-migration/import-empresas.py:114", "shortDescription": {"text": "Legacy-named symbol `delphi_legacy` in scripts/legacy-migration/import-empresas.py:114"}, "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-f7c89b2359eadf52", "name": "Commented-code block (6 lines) in scripts/legacy-migration/import-notas-fiscais.py:546", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/legacy-migration/import-notas-fiscais.py:546"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f66e4bc578e3af9", "name": "Legacy-named symbol `contact_profile_legacy` in scripts/legacy-migration/dump-pessoas-schema.py:279", "shortDescription": {"text": "Legacy-named symbol `contact_profile_legacy` in scripts/legacy-migration/dump-pessoas-schema.py:279"}, "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-3002aa4ec3e1f90f", "name": "Commented-code block (5 lines) in scripts/legacy-migration/import-produtos.py:100", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/legacy-migration/import-produtos.py:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35ebb5876f1e3dec", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/legacy-migration/migrar-martinho.py:50", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/legacy-migration/migrar-martinho.py:50"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-21bf3f46564265d2", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/legacy-migration/migrar-tudo.py:63", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/legacy-migration/migrar-tudo.py:63"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5de88fb9bb8d6ce1", "name": "Commented-code block (9 lines) in scripts/legacy-migration/daemon-sync-martinho.py:157", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/legacy-migration/daemon-sync-martinho.py: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-cf2ee27cce6aeadd", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/legacy-migration/daemon-sync-martinho.py:99", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/legacy-migration/daemon-sync-martinho.py:99"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-08e4720a6a2b09cd", "name": "Commented-code block (5 lines) in scripts/legacy-migration/import-financeiro.py:209", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/legacy-migration/import-financeiro.py:209"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6c62a51b9f8f930", "name": "Legacy-named symbol `delphi_legacy` in scripts/legacy-migration/import-contas-bancarias.py:189", "shortDescription": {"text": "Legacy-named symbol `delphi_legacy` in scripts/legacy-migration/import-contas-bancarias.py:189"}, "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-bd889c09215b0ad0", "name": "Legacy-named symbol `responsavel_codigo_legacy` in scripts/legacy-migration/import-vendas.py:286", "shortDescription": {"text": "Legacy-named symbol `responsavel_codigo_legacy` in scripts/legacy-migration/import-vendas.py:286"}, "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-ef10f0df0c6628e7", "name": "Legacy-named symbol `cod_produto_legacy` in scripts/legacy-migration/import-compras.py:293", "shortDescription": {"text": "Legacy-named symbol `cod_produto_legacy` in scripts/legacy-migration/import-compras.py:293"}, "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-6d8d435d162af964", "name": "Legacy-named symbol `_find_account_id_by_legacy` in scripts/legacy-migration/lib/mysql_writer.py:130", "shortDescription": {"text": "Legacy-named symbol `_find_account_id_by_legacy` in scripts/legacy-migration/lib/mysql_writer.py:130"}, "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-3e2292b9c16540d2", "name": "Legacy-named symbol `_fb_legacy` in scripts/legacy-migration/lib/firebird_reader.py:49", "shortDescription": {"text": "Legacy-named symbol `_fb_legacy` in scripts/legacy-migration/lib/firebird_reader.py:49"}, "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-f188e4947333c7fa", "name": "Commented-code block (7 lines) in scripts/legacy-migration/lib/firebird_reader.py:128", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/legacy-migration/lib/firebird_reader.py:128"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dc0eb59b7809d4cc", "name": "Legacy-named symbol `upper_old` in scripts/legacy-migration/lib/ddl_parser.py:348", "shortDescription": {"text": "Legacy-named symbol `upper_old` in scripts/legacy-migration/lib/ddl_parser.py:348"}, "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-442eaf8308955295", "name": "Legacy-named symbol `conta_bancaria_legacy` in scripts/legacy-migration/sql-wr2-pessoas/gerar-sql-subscriptions.py:52", "shortDescription": {"text": "Legacy-named symbol `conta_bancaria_legacy` in scripts/legacy-migration/sql-wr2-pessoas/gerar-sql-subscriptions.py:52"}, "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-1e5105a0b5c12734", "name": "Legacy-named symbol `conta_bancaria_legacy` in scripts/legacy-migration/sql-wr2-pessoas/gerar-sql-etapa1-cancelados-ativ", "shortDescription": {"text": "Legacy-named symbol `conta_bancaria_legacy` in scripts/legacy-migration/sql-wr2-pessoas/gerar-sql-etapa1-cancelados-ativos.py:70"}, "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-f79e1f66d60fa007", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/dual-brain/watchers/remote-log-watcher.js:60", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/dual-brain/watchers/remote-log-watcher.js:60"}, "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-a71492d8708f2334", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/dual-brain/watchers/remote-git-watcher.js:66", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/dual-brain/watchers/remote-git-watcher.js:66"}, "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-cdf5f4047771c7d8", "name": "Commented-code block (6 lines) in scripts/audit/sqlite-test-corruptors.mjs:5", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/audit/sqlite-test-corruptors.mjs: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-86b7017eee6184a6", "name": "Legacy-named symbol `maskDigitPosMapOld` in doc/assets/backend/js/app.min.js:1", "shortDescription": {"text": "Legacy-named symbol `maskDigitPosMapOld` in doc/assets/backend/js/app.min.js:1"}, "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-17783e49f730a051", "name": "Legacy-named symbol `pdataOld` in doc/assets/backend/js/app.js:5636", "shortDescription": {"text": "Legacy-named symbol `pdataOld` in doc/assets/backend/js/app.js:5636"}, "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-d33d9094f779626c", "name": "Commented-code block (7 lines) in doc/assets/backend/js/app.js:20", "shortDescription": {"text": "Commented-code block (7 lines) in doc/assets/backend/js/app.js:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f0d5c1b5ba97fb2f", "name": "Commented-code block (6 lines) in memory/requisitos/_DesignSystem/ui_kits/_BACKUP-NAO-USAR-cowork-2026-04-27/tweaks-pane", "shortDescription": {"text": "Commented-code block (6 lines) in memory/requisitos/_DesignSystem/ui_kits/_BACKUP-NAO-USAR-cowork-2026-04-27/tweaks-panel.jsx: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-2a60d8ccf9acb6b2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 memory/requisitos/_DesignSystem/ui_kits/_BACKUP-NAO-USAR-cowork-2026-04-27", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 memory/requisitos/_DesignSystem/ui_kits/_BACKUP-NAO-USAR-cowork-2026-04-27/laravel-panel.jsx:91"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-88f103a20198c354", "name": "Commented-code block (5 lines) in .claude/governance-eval/grade.mjs:4", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/governance-eval/grade.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-737fb7847208ebf2", "name": "Commented-code block (7 lines) in .claude/governance-eval/scorecard.mjs:4", "shortDescription": {"text": "Commented-code block (7 lines) in .claude/governance-eval/scorecard.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78c3c0f185be0076", "name": "Commented-code block (8 lines) in .claude/hooks/git-base-freshness-guard.mjs:6", "shortDescription": {"text": "Commented-code block (8 lines) in .claude/hooks/git-base-freshness-guard.mjs: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-21e98ab08dd288ff", "name": "Commented-code block (5 lines) in .claude/hooks/block-pr-without-approval.mjs:8", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/hooks/block-pr-without-approval.mjs: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-1974e8db87bd9471", "name": "Commented-code block (6 lines) in .claude/hooks/audit-creates-tasks.mjs:13", "shortDescription": {"text": "Commented-code block (6 lines) in .claude/hooks/audit-creates-tasks.mjs: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-ca94acdf289e3478", "name": "Commented-code block (5 lines) in .claude/hooks/block-askq-execution-menu.mjs:5", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/hooks/block-askq-execution-menu.mjs: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-d6bfd2f9833d0b8b", "name": "Commented-code block (5 lines) in .claude/hooks/force-r12-closing-signal.mjs:18", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/hooks/force-r12-closing-signal.mjs:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9db6b3185dc082f5", "name": "Commented-code block (8 lines) in .claude/hooks/design-handoff-reprocess.mjs:22", "shortDescription": {"text": "Commented-code block (8 lines) in .claude/hooks/design-handoff-reprocess.mjs:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-97214e9f7706212e", "name": "Commented-code block (5 lines) in .claude/workflows/sdd-fase-2.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/workflows/sdd-fase-2.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ce5af497745d04f", "name": "Commented-code block (6 lines) in public/js/pos.js:282", "shortDescription": {"text": "Commented-code block (6 lines) in public/js/pos.js:282"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5afd184351485154", "name": "Commented-code block (12 lines) in public/js/labels.js:50", "shortDescription": {"text": "Commented-code block (12 lines) in public/js/labels.js: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-41ea3652bfe57bfe", "name": "Commented-code block (8 lines) in public/js/common.js:145", "shortDescription": {"text": "Commented-code block (8 lines) in public/js/common.js: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-f871b779c09a4779", "name": "Commented-code block (5 lines) in public/js/sell_return.js:85", "shortDescription": {"text": "Commented-code block (5 lines) in public/js/sell_return.js:85"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c061758ddd995a6b", "name": "Commented-code block (7 lines) in public/cowork-preview/erp-shell-v2/tweaks-panel.jsx:12", "shortDescription": {"text": "Commented-code block (7 lines) in public/cowork-preview/erp-shell-v2/tweaks-panel.jsx: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-64b797fe5acafec8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/cowork-preview/erp-shell-v2/laravel-panel.jsx:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/cowork-preview/erp-shell-v2/laravel-panel.jsx:91"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8fc3e831b33e52b6", "name": "Commented-code block (5 lines) in public/cowork-preview/erp-shell-v2/data.jsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell-v2/data.jsx: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-890bdadea3c557e5", "name": "Commented-code block (7 lines) in public/cowork-preview/erp-shell-v2/fiscal-page.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in public/cowork-preview/erp-shell-v2/fiscal-page.jsx: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-4196858e2f4632f5", "name": "Commented-code block (6 lines) in public/cowork-preview/erp-shell-v2/app.jsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in public/cowork-preview/erp-shell-v2/app.jsx: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-24159fa1b3801134", "name": "Commented-code block (10 lines) in public/cowork-preview/erp-shell-v2/fiscal-data.jsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in public/cowork-preview/erp-shell-v2/fiscal-data.jsx: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-987506ebc6d0149e", "name": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/kb-trouble-lib.jsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/kb-trouble-lib.jsx: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-bf2be7a8c07748ce", "name": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/kb-trouble-editor.jsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/kb-trouble-editor.jsx: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-e9463999aae8e0bc", "name": "Commented-code block (8 lines) in public/cowork-preview/erp-shell/vendas-page.jsx:65", "shortDescription": {"text": "Commented-code block (8 lines) in public/cowork-preview/erp-shell/vendas-page.jsx:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-07b81f1a2883382d", "name": "Commented-code block (7 lines) in public/cowork-preview/erp-shell/tweaks-panel.jsx:12", "shortDescription": {"text": "Commented-code block (7 lines) in public/cowork-preview/erp-shell/tweaks-panel.jsx: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-f08f246d9bf6b950", "name": "Commented-code block (7 lines) in public/cowork-preview/erp-shell/financeiro-output.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in public/cowork-preview/erp-shell/financeiro-output.jsx: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-6084b0022c10c0ed", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/cowork-preview/erp-shell/laravel-panel.jsx:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/cowork-preview/erp-shell/laravel-panel.jsx:91"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-827dd7c0bd5f69dd", "name": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/pg-sells-cobranca-preview.jsx:121", "shortDescription": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/pg-sells-cobranca-preview.jsx: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-94027b432b247937", "name": "Commented-code block (6 lines) in public/cowork-preview/erp-shell/financeiro-ai.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in public/cowork-preview/erp-shell/financeiro-ai.jsx: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-b61e4fff8a7c0cd8", "name": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/vendas-output.jsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/vendas-output.jsx: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-f8414efcb261b865", "name": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/data.jsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/data.jsx: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-1888fba6e78f7e49", "name": "Commented-code block (6 lines) in public/cowork-preview/erp-shell/financeiro-curation.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in public/cowork-preview/erp-shell/financeiro-curation.jsx: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-fb869eee18f01e4c", "name": "Commented-code block (9 lines) in public/cowork-preview/erp-shell/inbox-page.jsx:11", "shortDescription": {"text": "Commented-code block (9 lines) in public/cowork-preview/erp-shell/inbox-page.jsx: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-ab9838d4d00ec210", "name": "Commented-code block (6 lines) in public/cowork-preview/erp-shell/app.jsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in public/cowork-preview/erp-shell/app.jsx: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-dc46d779b52766d0", "name": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/pg-shell-adapters.jsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/pg-shell-adapters.jsx: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-d9ffa1a6cc7b7018", "name": "Commented-code block (7 lines) in public/cowork-preview/erp-shell/pg-vendas-integration.jsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in public/cowork-preview/erp-shell/pg-vendas-integration.jsx: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-5860c90a8d54eb6f", "name": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/kb-paths.jsx:229", "shortDescription": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/kb-paths.jsx:229"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b539a3adb5233c4b", "name": "Commented-code block (5 lines) in public/prototipos/kb/kb-trouble-lib.jsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in public/prototipos/kb/kb-trouble-lib.jsx: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-38ce9cb2ffcb00be", "name": "Commented-code block (5 lines) in public/prototipos/kb/kb-trouble-editor.jsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in public/prototipos/kb/kb-trouble-editor.jsx: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-5f85e6e12857b0d5", "name": "Commented-code block (5 lines) in public/prototipos/kb/kb-paths.jsx:229", "shortDescription": {"text": "Commented-code block (5 lines) in public/prototipos/kb/kb-paths.jsx:229"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-825b2f0e931f2ca5", "name": "Commented-code block (9 lines) in e2e/oficina-uc06-gate-etapa.spec.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in e2e/oficina-uc06-gate-etapa.spec.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-3f5c7f7ef3ebb287", "name": "Commented-code block (10 lines) in e2e/oficina-os-funcional-fluxo.spec.ts:121", "shortDescription": {"text": "Commented-code block (10 lines) in e2e/oficina-os-funcional-fluxo.spec.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-642ed2a453ab99d3", "name": "Commented-code block (5 lines) in e2e/sells-venda-balcao.spec.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/sells-venda-balcao.spec.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-eca07477e056515a", "name": "Commented-code block (5 lines) in e2e/global-setup.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/global-setup.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-64bc033a45ab26f1", "name": "34 env vars used in code but missing from .env.example", "shortDescription": {"text": "34 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `CI`, `CREATED_BY`, `DEV`, `E2E_BYPASS_LOGIN_ID`, `E2E_PASS`, `E2E_USER`, `FB_ALIAS`, `FB_DSN` + 26 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nprototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/scripts/scope-fin-cowork-css.py:find_matching_brace, scripts/scope-sells-cowork-css.py:find_matching_brace, scripts/scope-fin-cowork-css.py:find_matching_brace\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/fix_specs.py:fix_status, scripts/fix_runbooks.py:fix_status\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/fix_specs.py:fix_related_adrs, scripts/fix_sessions.py:fix_related_adrs, scripts/fix_runbooks.py:fix_related_adrs, scripts/fix_adrs_editable.py:repl\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/legacy-migration/import-contacts-from-venda.py:normalize_str, scripts/legacy-migration/enrich-produtos.py:normalize_str, scripts/legacy-migration/import-notas-fiscais.py:normalize_str, scripts/legacy-migration/import-contacts-from-nfe.py:normalize_str\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46969939caf8120b", "name": "Near-duplicate function bodies in 9 places", "shortDescription": {"text": "Near-duplicate function bodies in 9 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/legacy-migration/import-contacts-from-venda.py:get_existing_cols, scripts/legacy-migration/enrich-produtos.py:get_existing_cols, scripts/legacy-migration/import-notas-fiscais.py:get_existing_cols, scripts/legacy-migration/import-contacts-from-nfe.py:get_existing_cols\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3310a46d8cee7768", "name": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/laravel-panel.", "shortDescription": {"text": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/laravel-panel.jsx:91)"}, "fullDescription": {"text": "`prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/laravel-panel.jsx:91` calls `GET /api/...` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/...`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-53ba12a81b268de2", "name": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/laravel-panel.jsx:91)", "shortDescription": {"text": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/laravel-panel.jsx:91)"}, "fullDescription": {"text": "`prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/laravel-panel.jsx:91` calls `GET /api/...` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/...`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aff55aefb3886cb1", "name": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/pr", "shortDescription": {"text": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/laravel-panel.jsx:91)"}, "fullDescription": {"text": "`prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/laravel-panel.jsx:91` calls `GET /api/...` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/...`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce2d7b45948a14a6", "name": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/pr", "shortDescription": {"text": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/laravel-panel.jsx:91)"}, "fullDescription": {"text": "`prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/laravel-panel.jsx:91` calls `GET /api/...` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/...`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0bc0769bc8392a00", "name": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/pr", "shortDescription": {"text": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/laravel-panel.jsx:91)"}, "fullDescription": {"text": "`prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/laravel-panel.jsx:91` calls `GET /api/...` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/...`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09bbbae815b99acb", "name": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/laravel-panel.jsx", "shortDescription": {"text": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/laravel-panel.jsx:91)"}, "fullDescription": {"text": "`prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/laravel-panel.jsx:91` calls `GET /api/...` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/...`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2d19d189962227fa", "name": "Dangling fetch: GET /api/... (prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/laravel-panel.jsx:91)", "shortDescription": {"text": "Dangling fetch: GET /api/... (prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/laravel-panel.jsx:91)"}, "fullDescription": {"text": "`prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/laravel-panel.jsx:91` calls `GET /api/...` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/...`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-90b9b3c48127f053", "name": "Dangling fetch: GET /api/... (memory/requisitos/_DesignSystem/ui_kits/_BACKUP-NAO-USAR-cowork-2026-04-27/laravel-panel.j", "shortDescription": {"text": "Dangling fetch: GET /api/... (memory/requisitos/_DesignSystem/ui_kits/_BACKUP-NAO-USAR-cowork-2026-04-27/laravel-panel.jsx:91)"}, "fullDescription": {"text": "`memory/requisitos/_DesignSystem/ui_kits/_BACKUP-NAO-USAR-cowork-2026-04-27/laravel-panel.jsx:91` calls `GET /api/...` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/...`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-77ec4f2334856d9f", "name": "Dangling fetch: GET /api/... (public/cowork-preview/erp-shell-v2/laravel-panel.jsx:91)", "shortDescription": {"text": "Dangling fetch: GET /api/... (public/cowork-preview/erp-shell-v2/laravel-panel.jsx:91)"}, "fullDescription": {"text": "`public/cowork-preview/erp-shell-v2/laravel-panel.jsx:91` calls `GET /api/...` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/...`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e72360e689594ec1", "name": "Dangling fetch: GET /api/... (public/cowork-preview/erp-shell/laravel-panel.jsx:91)", "shortDescription": {"text": "Dangling fetch: GET /api/... (public/cowork-preview/erp-shell/laravel-panel.jsx:91)"}, "fullDescription": {"text": "`public/cowork-preview/erp-shell/laravel-panel.jsx:91` calls `GET /api/...` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/...`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-56d03ca873ef4fba", "name": "Dangling fetch: GET /project-mgmt/search?q=${encodeURIComponent(query.trim())} (resources/js/Components/CommandPalette.t", "shortDescription": {"text": "Dangling fetch: GET /project-mgmt/search?q=${encodeURIComponent(query.trim())} (resources/js/Components/CommandPalette.tsx:118)"}, "fullDescription": {"text": "`resources/js/Components/CommandPalette.tsx:118` calls `GET /project-mgmt/search?q=${encodeURIComponent(query.trim())}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c269840dafdb8c8e", "name": "Dangling fetch: GET /project-mgmt/board/users/suggest?q=${encodeURIComponent(mention.query)} (resources/js/Components/Me", "shortDescription": {"text": "Dangling fetch: GET /project-mgmt/board/users/suggest?q=${encodeURIComponent(mention.query)} (resources/js/Components/MentionInput.tsx:114)"}, "fullDescription": {"text": "`resources/js/Components/MentionInput.tsx:114` calls `GET /project-mgmt/board/users/suggest?q=${encodeURIComponent(mention.query)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/board/users/suggest`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d1236151dbbce59e", "name": "Dangling fetch: POST /user/preferences/theme (resources/js/Hooks/useTheme.ts:70)", "shortDescription": {"text": "Dangling fetch: POST /user/preferences/theme (resources/js/Hooks/useTheme.ts:70)"}, "fullDescription": {"text": "`resources/js/Hooks/useTheme.ts:70` calls `POST /user/preferences/theme` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/user/preferences/theme`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bf2656bbb826f412", "name": "Dangling fetch: GET /nfe-brasil/api/transactions/${transactionId}/emissoes (resources/js/Hooks/useEmissoesPorTransaction", "shortDescription": {"text": "Dangling fetch: GET /nfe-brasil/api/transactions/${transactionId}/emissoes (resources/js/Hooks/useEmissoesPorTransaction.ts:69)"}, "fullDescription": {"text": "`resources/js/Hooks/useEmissoesPorTransaction.ts:69` calls `GET /nfe-brasil/api/transactions/${transactionId}/emissoes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/nfe-brasil/api/transactions/<p>/emissoes`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7dc22e69af18dc97", "name": "Dangling fetch: GET /nfe-brasil/api/transactions/${txId}/nfe-status (resources/js/Hooks/useNfceStatus.ts:88)", "shortDescription": {"text": "Dangling fetch: GET /nfe-brasil/api/transactions/${txId}/nfe-status (resources/js/Hooks/useNfceStatus.ts:88)"}, "fullDescription": {"text": "`resources/js/Hooks/useNfceStatus.ts:88` calls `GET /nfe-brasil/api/transactions/${txId}/nfe-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/nfe-brasil/api/transactions/<p>/nfe-status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f56f768b3116b51e", "name": "Dangling fetch: GET /essentials/view-todo-${todo.id}-share-docs (resources/js/Pages/Essentials/Todo/Show.tsx:227)", "shortDescription": {"text": "Dangling fetch: GET /essentials/view-todo-${todo.id}-share-docs (resources/js/Pages/Essentials/Todo/Show.tsx:227)"}, "fullDescription": {"text": "`resources/js/Pages/Essentials/Todo/Show.tsx:227` calls `GET /essentials/view-todo-${todo.id}-share-docs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/essentials/view-todo-/<p>-share-docs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-599759cc84d0db38", "name": "Dangling fetch: GET /essentials/get-new-messages?last_chat_time=${encodeURIComponent(last)} (resources/js/Pages/Essentia", "shortDescription": {"text": "Dangling fetch: GET /essentials/get-new-messages?last_chat_time=${encodeURIComponent(last)} (resources/js/Pages/Essentials/Messages/Index.tsx:99)"}, "fullDescription": {"text": "`resources/js/Pages/Essentials/Messages/Index.tsx:99` calls `GET /essentials/get-new-messages?last_chat_time=${encodeURIComponent(last)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/essentials/get-new-messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fc1faadc982b6db3", "name": "Dangling fetch: DELETE /essentials/messages/${deleteTarget.id} (resources/js/Pages/Essentials/Messages/Index.tsx:139)", "shortDescription": {"text": "Dangling fetch: DELETE /essentials/messages/${deleteTarget.id} (resources/js/Pages/Essentials/Messages/Index.tsx:139)"}, "fullDescription": {"text": "`resources/js/Pages/Essentials/Messages/Index.tsx:139` calls `DELETE /essentials/messages/${deleteTarget.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/essentials/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5106f2c6481731b0", "name": "Dangling fetch: GET /essentials/document-share/${doc.id}/edit (resources/js/Pages/Essentials/Documents/Index.tsx:157)", "shortDescription": {"text": "Dangling fetch: GET /essentials/document-share/${doc.id}/edit (resources/js/Pages/Essentials/Documents/Index.tsx:157)"}, "fullDescription": {"text": "`resources/js/Pages/Essentials/Documents/Index.tsx:157` calls `GET /essentials/document-share/${doc.id}/edit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/essentials/document-share/<p>/edit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2974c78f9ade9329", "name": "Dangling fetch: PUT /essentials/document-share (resources/js/Pages/Essentials/Documents/Index.tsx:207)", "shortDescription": {"text": "Dangling fetch: PUT /essentials/document-share (resources/js/Pages/Essentials/Documents/Index.tsx:207)"}, "fullDescription": {"text": "`resources/js/Pages/Essentials/Documents/Index.tsx:207` calls `PUT /essentials/document-share` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/essentials/document-share`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4e6f17f139049456", "name": "Dangling fetch: GET /consulta-os/buscar?${params} (resources/js/Pages/ConsultaOs/Index.tsx:30)", "shortDescription": {"text": "Dangling fetch: GET /consulta-os/buscar?${params} (resources/js/Pages/ConsultaOs/Index.tsx:30)"}, "fullDescription": {"text": "`resources/js/Pages/ConsultaOs/Index.tsx:30` calls `GET /consulta-os/buscar?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/consulta-os/buscar`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6870296613b231f6", "name": "Dangling fetch: POST /settings/payment-gateways/${g.id}/toggle (resources/js/Pages/Settings/PaymentGateways/Index.tsx:10", "shortDescription": {"text": "Dangling fetch: POST /settings/payment-gateways/${g.id}/toggle (resources/js/Pages/Settings/PaymentGateways/Index.tsx:108)"}, "fullDescription": {"text": "`resources/js/Pages/Settings/PaymentGateways/Index.tsx:108` calls `POST /settings/payment-gateways/${g.id}/toggle` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/payment-gateways/<p>/toggle`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e593544defa4d20e", "name": "Dangling fetch: POST /settings/payment-gateways/health-check (resources/js/Pages/Settings/PaymentGateways/Index.tsx:126)", "shortDescription": {"text": "Dangling fetch: POST /settings/payment-gateways/health-check (resources/js/Pages/Settings/PaymentGateways/Index.tsx:126)"}, "fullDescription": {"text": "`resources/js/Pages/Settings/PaymentGateways/Index.tsx:126` calls `POST /settings/payment-gateways/health-check` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/payment-gateways/health-check`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff2aa75a2785c306", "name": "Dangling fetch: GET /settings/payment-gateways/${gateway.id}/webhook-events (resources/js/Pages/Settings/PaymentGateways", "shortDescription": {"text": "Dangling fetch: GET /settings/payment-gateways/${gateway.id}/webhook-events (resources/js/Pages/Settings/PaymentGateways/_components/DrawerGateway.tsx:96)"}, "fullDescription": {"text": "`resources/js/Pages/Settings/PaymentGateways/_components/DrawerGateway.tsx:96` calls `GET /settings/payment-gateways/${gateway.id}/webhook-events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/payment-gateways/<p>/webhook-events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-427148af9ef485d7", "name": "Dangling fetch: GET /settings/payment-gateways/${gateway.id}/quota (resources/js/Pages/Settings/PaymentGateways/_compone", "shortDescription": {"text": "Dangling fetch: GET /settings/payment-gateways/${gateway.id}/quota (resources/js/Pages/Settings/PaymentGateways/_components/DrawerGateway.tsx:116)"}, "fullDescription": {"text": "`resources/js/Pages/Settings/PaymentGateways/_components/DrawerGateway.tsx:116` calls `GET /settings/payment-gateways/${gateway.id}/quota` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/payment-gateways/<p>/quota`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-13c96737f8ca5646", "name": "Dangling fetch: GET /settings/payment-gateways/${gateway.id}/history (resources/js/Pages/Settings/PaymentGateways/_compo", "shortDescription": {"text": "Dangling fetch: GET /settings/payment-gateways/${gateway.id}/history (resources/js/Pages/Settings/PaymentGateways/_components/DrawerGateway.tsx:135)"}, "fullDescription": {"text": "`resources/js/Pages/Settings/PaymentGateways/_components/DrawerGateway.tsx:135` calls `GET /settings/payment-gateways/${gateway.id}/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/payment-gateways/<p>/history`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d24d6b067f8401e", "name": "Dangling fetch: POST /settings/payment-gateways/${gateway.id}/health-check (resources/js/Pages/Settings/PaymentGateways/", "shortDescription": {"text": "Dangling fetch: POST /settings/payment-gateways/${gateway.id}/health-check (resources/js/Pages/Settings/PaymentGateways/_components/DrawerGateway.tsx:224)"}, "fullDescription": {"text": "`resources/js/Pages/Settings/PaymentGateways/_components/DrawerGateway.tsx:224` calls `POST /settings/payment-gateways/${gateway.id}/health-check` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/payment-gateways/<p>/health-check`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8bb9d6bbc8b4a76d", "name": "Dangling fetch: POST /memcofre/chat/ask (resources/js/Pages/MemCofre/Chat.tsx:89)", "shortDescription": {"text": "Dangling fetch: POST /memcofre/chat/ask (resources/js/Pages/MemCofre/Chat.tsx:89)"}, "fullDescription": {"text": "`resources/js/Pages/MemCofre/Chat.tsx:89` calls `POST /memcofre/chat/ask` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memcofre/chat/ask`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25f70d3eaedee4e8", "name": "Dangling fetch: POST /memcofre/chat/new (resources/js/Pages/MemCofre/Chat.tsx:125)", "shortDescription": {"text": "Dangling fetch: POST /memcofre/chat/new (resources/js/Pages/MemCofre/Chat.tsx:125)"}, "fullDescription": {"text": "`resources/js/Pages/MemCofre/Chat.tsx:125` calls `POST /memcofre/chat/new` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memcofre/chat/new`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e2968a55a37014f8", "name": "Dangling fetch: GET /docs/memoria/file?key=${encodeURIComponent(key)} (resources/js/Pages/MemCofre/Memoria.tsx:89)", "shortDescription": {"text": "Dangling fetch: GET /docs/memoria/file?key=${encodeURIComponent(key)} (resources/js/Pages/MemCofre/Memoria.tsx:89)"}, "fullDescription": {"text": "`resources/js/Pages/MemCofre/Memoria.tsx:89` calls `GET /docs/memoria/file?key=${encodeURIComponent(key)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/docs/memoria/file`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5244212719bbe8f3", "name": "Dangling fetch: PATCH /project-mgmt/my-work/${taskId}/status (resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:163)", "shortDescription": {"text": "Dangling fetch: PATCH /project-mgmt/my-work/${taskId}/status (resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:163)"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:163` calls `PATCH /project-mgmt/my-work/${taskId}/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/my-work/<p>/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4871b28f3ccb139c", "name": "Dangling fetch: POST /project-mgmt/my-work/inbox/${id}/read (resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:182)", "shortDescription": {"text": "Dangling fetch: POST /project-mgmt/my-work/inbox/${id}/read (resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:182)"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:182` calls `POST /project-mgmt/my-work/inbox/${id}/read` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/my-work/inbox/<p>/read`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f86a4a1ae2f9c9a", "name": "Dangling fetch: POST /project-mgmt/my-work/inbox/read-all (resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:199)", "shortDescription": {"text": "Dangling fetch: POST /project-mgmt/my-work/inbox/read-all (resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:199)"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:199` calls `POST /project-mgmt/my-work/inbox/read-all` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/my-work/inbox/read-all`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d42557e4e3ee15e5", "name": "Dangling fetch: PATCH /project-mgmt/triage/${taskId}/assign (resources/js/Pages/ProjectMgmt/Triage/Index.tsx:135)", "shortDescription": {"text": "Dangling fetch: PATCH /project-mgmt/triage/${taskId}/assign (resources/js/Pages/ProjectMgmt/Triage/Index.tsx:135)"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Triage/Index.tsx:135` calls `PATCH /project-mgmt/triage/${taskId}/assign` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/triage/<p>/assign`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-67e239b151810130", "name": "Dangling fetch: PATCH /project-mgmt/inbox/${id}/read (resources/js/Pages/ProjectMgmt/Inbox/Index.tsx:138)", "shortDescription": {"text": "Dangling fetch: PATCH /project-mgmt/inbox/${id}/read (resources/js/Pages/ProjectMgmt/Inbox/Index.tsx:138)"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Inbox/Index.tsx:138` calls `PATCH /project-mgmt/inbox/${id}/read` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/inbox/<p>/read`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0f2b898b4fcbb4a9", "name": "Dangling fetch: PATCH /project-mgmt/inbox/read-all (resources/js/Pages/ProjectMgmt/Inbox/Index.tsx:157)", "shortDescription": {"text": "Dangling fetch: PATCH /project-mgmt/inbox/read-all (resources/js/Pages/ProjectMgmt/Inbox/Index.tsx:157)"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Inbox/Index.tsx:157` calls `PATCH /project-mgmt/inbox/read-all` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/inbox/read-all`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2204f34ee1bfda9c", "name": "Dangling fetch: POST /project-mgmt/backlog/bulk (resources/js/Pages/ProjectMgmt/Backlog/Index.tsx:141)", "shortDescription": {"text": "Dangling fetch: POST /project-mgmt/backlog/bulk (resources/js/Pages/ProjectMgmt/Backlog/Index.tsx:141)"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Backlog/Index.tsx:141` calls `POST /project-mgmt/backlog/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/backlog/bulk`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-330628df1cc7c113", "name": "Dangling fetch: PATCH /project-mgmt/board/${taskId}/status (resources/js/Pages/ProjectMgmt/Board/Index.tsx:180)", "shortDescription": {"text": "Dangling fetch: PATCH /project-mgmt/board/${taskId}/status (resources/js/Pages/ProjectMgmt/Board/Index.tsx:180)"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Board/Index.tsx:180` calls `PATCH /project-mgmt/board/${taskId}/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/board/<p>/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-384a76854b36c3cd", "name": "Dangling fetch: GET /project-mgmt/board/${taskId}/detail (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:211)", "shortDescription": {"text": "Dangling fetch: GET /project-mgmt/board/${taskId}/detail (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:211)"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:211` calls `GET /project-mgmt/board/${taskId}/detail` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/board/<p>/detail`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-265c719a2ffe2cde", "name": "Dangling fetch: POST /project-mgmt/board/${taskId}/subtask (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:252)", "shortDescription": {"text": "Dangling fetch: POST /project-mgmt/board/${taskId}/subtask (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:252)"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:252` calls `POST /project-mgmt/board/${taskId}/subtask` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/board/<p>/subtask`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d4d5b8d5463bd61", "name": "Dangling fetch: PATCH /project-mgmt/board/${subtask.task_id}/status (resources/js/Pages/ProjectMgmt/Board/DetailSheet.ts", "shortDescription": {"text": "Dangling fetch: PATCH /project-mgmt/board/${subtask.task_id}/status (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:291)"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:291` calls `PATCH /project-mgmt/board/${subtask.task_id}/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/board/<p>/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-22e1363571ac8837", "name": "Dangling fetch: POST /project-mgmt/board/${taskId}/comment (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:331)", "shortDescription": {"text": "Dangling fetch: POST /project-mgmt/board/${taskId}/comment (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:331)"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:331` calls `POST /project-mgmt/board/${taskId}/comment` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/board/<p>/comment`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-934078d412b6353e", "name": "Dangling fetch: GET /project-mgmt/board/${taskId}/watch (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:379)", "shortDescription": {"text": "Dangling fetch: GET /project-mgmt/board/${taskId}/watch (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:379)"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:379` calls `GET /project-mgmt/board/${taskId}/watch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/board/<p>/watch`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d3c838525ef0c9db", "name": "Dangling fetch: GET /project-mgmt/board/${taskId}/detail (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:389)", "shortDescription": {"text": "Dangling fetch: GET /project-mgmt/board/${taskId}/detail (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:389)"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:389` calls `GET /project-mgmt/board/${taskId}/detail` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/project-mgmt/board/<p>/detail`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-48e867de3dd81ff1", "name": "Dangling fetch: POST /ads/admin/meta-skills/validate (resources/js/Pages/ads/Admin/MetaSkills.tsx:212)", "shortDescription": {"text": "Dangling fetch: POST /ads/admin/meta-skills/validate (resources/js/Pages/ads/Admin/MetaSkills.tsx:212)"}, "fullDescription": {"text": "`resources/js/Pages/ads/Admin/MetaSkills.tsx:212` calls `POST /ads/admin/meta-skills/validate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ads/admin/meta-skills/validate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e5b7a72a90666d06", "name": "Dangling fetch: POST /ads/admin/tools/${tool.name}/execute (resources/js/Pages/ads/Admin/Tools.tsx:146)", "shortDescription": {"text": "Dangling fetch: POST /ads/admin/tools/${tool.name}/execute (resources/js/Pages/ads/Admin/Tools.tsx:146)"}, "fullDescription": {"text": "`resources/js/Pages/ads/Admin/Tools.tsx:146` calls `POST /ads/admin/tools/${tool.name}/execute` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ads/admin/tools/<p>/execute`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9e01d9949bcf06d9", "name": "Dangling fetch: GET /whatsapp/settings/meta-oauth-init (resources/js/Pages/Whatsapp/Settings.tsx:113)", "shortDescription": {"text": "Dangling fetch: GET /whatsapp/settings/meta-oauth-init (resources/js/Pages/Whatsapp/Settings.tsx:113)"}, "fullDescription": {"text": "`resources/js/Pages/Whatsapp/Settings.tsx:113` calls `GET /whatsapp/settings/meta-oauth-init` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/whatsapp/settings/meta-oauth-init`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1bf8abae6d528df8", "name": "Dangling fetch: POST /whatsapp/settings/meta-embedded-callback (resources/js/Pages/Whatsapp/Settings.tsx:189)", "shortDescription": {"text": "Dangling fetch: POST /whatsapp/settings/meta-embedded-callback (resources/js/Pages/Whatsapp/Settings.tsx:189)"}, "fullDescription": {"text": "`resources/js/Pages/Whatsapp/Settings.tsx:189` calls `POST /whatsapp/settings/meta-embedded-callback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/whatsapp/settings/meta-embedded-callback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2e30270ba766d0cc", "name": "Dangling fetch: GET /atendimento/customer/${encodeURIComponent(ext)}/profile (resources/js/Pages/Whatsapp/_components/Cu", "shortDescription": {"text": "Dangling fetch: GET /atendimento/customer/${encodeURIComponent(ext)}/profile (resources/js/Pages/Whatsapp/_components/CustomerMemoryBlock.tsx:131)"}, "fullDescription": {"text": "`resources/js/Pages/Whatsapp/_components/CustomerMemoryBlock.tsx:131` calls `GET /atendimento/customer/${encodeURIComponent(ext)}/profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/atendimento/customer/<p>/profile`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-81f7df210d852e0e", "name": "Dangling fetch: POST /atendimento/feedback/capture (resources/js/Pages/Whatsapp/_components/CaptureFeedbackSheet.tsx:160", "shortDescription": {"text": "Dangling fetch: POST /atendimento/feedback/capture (resources/js/Pages/Whatsapp/_components/CaptureFeedbackSheet.tsx:160)"}, "fullDescription": {"text": "`resources/js/Pages/Whatsapp/_components/CaptureFeedbackSheet.tsx:160` calls `POST /atendimento/feedback/capture` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/atendimento/feedback/capture`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4e5cd805d23f8eb1", "name": "Dangling fetch: POST /comunicacao-visual/api/calcular (resources/js/Pages/ComunicacaoVisual/Index.tsx:176)", "shortDescription": {"text": "Dangling fetch: POST /comunicacao-visual/api/calcular (resources/js/Pages/ComunicacaoVisual/Index.tsx:176)"}, "fullDescription": {"text": "`resources/js/Pages/ComunicacaoVisual/Index.tsx:176` calls `POST /comunicacao-visual/api/calcular` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/comunicacao-visual/api/calcular`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae6b0008a6cc26b9", "name": "Dangling fetch: GET /financeiro/unificado/saldo-sparkline (resources/js/Pages/Financeiro/Unificado/Index.tsx:606)", "shortDescription": {"text": "Dangling fetch: GET /financeiro/unificado/saldo-sparkline (resources/js/Pages/Financeiro/Unificado/Index.tsx:606)"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Unificado/Index.tsx:606` calls `GET /financeiro/unificado/saldo-sparkline` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/financeiro/unificado/saldo-sparkline`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f23e07f085f1384", "name": "Dangling fetch: GET /financeiro/unificado/${tituloId}/anexos (resources/js/Pages/Financeiro/Unificado/_components/FinAne", "shortDescription": {"text": "Dangling fetch: GET /financeiro/unificado/${tituloId}/anexos (resources/js/Pages/Financeiro/Unificado/_components/FinAnexosPanel.tsx:68)"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Unificado/_components/FinAnexosPanel.tsx:68` calls `GET /financeiro/unificado/${tituloId}/anexos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/financeiro/unificado/<p>/anexos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-488f107622043670", "name": "Dangling fetch: GET /financeiro/unificado/sugerir-valor?contraparte=${encodeURIComponent(val)}&tipo=${tipo} (resources/j", "shortDescription": {"text": "Dangling fetch: GET /financeiro/unificado/sugerir-valor?contraparte=${encodeURIComponent(val)}&tipo=${tipo} (resources/js/Pages/Financeiro/Unificado/_components/TituloCreateSheet.tsx:131)"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Unificado/_components/TituloCreateSheet.tsx:131` calls `GET /financeiro/unificado/sugerir-valor?contraparte=${encodeURIComponent(val)}&tipo=${tipo}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/financeiro/unificado/sugerir-valor`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c1bb0c3df2862f32", "name": "Dangling fetch: GET /financeiro/unificado/buscar-cliente?q=${encodeURIComponent(value)} (resources/js/Pages/Financeiro/U", "shortDescription": {"text": "Dangling fetch: GET /financeiro/unificado/buscar-cliente?q=${encodeURIComponent(value)} (resources/js/Pages/Financeiro/Unificado/_components/ClienteCombobox.tsx:57)"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Unificado/_components/ClienteCombobox.tsx:57` calls `GET /financeiro/unificado/buscar-cliente?q=${encodeURIComponent(value)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/financeiro/unificado/buscar-cliente`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ae4d3869ece91e4", "name": "Dangling fetch: POST /financeiro/unificado/ocr-boleto (resources/js/Pages/Financeiro/Unificado/_components/FinOcrBoletoS", "shortDescription": {"text": "Dangling fetch: POST /financeiro/unificado/ocr-boleto (resources/js/Pages/Financeiro/Unificado/_components/FinOcrBoletoSheet.tsx:89)"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Unificado/_components/FinOcrBoletoSheet.tsx:89` calls `POST /financeiro/unificado/ocr-boleto` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/financeiro/unificado/ocr-boleto`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4c673e89a660e8d3", "name": "Dangling fetch: GET /recurring-billing/${subId}/events (resources/js/Pages/RecurringBilling/Index.tsx:1204)", "shortDescription": {"text": "Dangling fetch: GET /recurring-billing/${subId}/events (resources/js/Pages/RecurringBilling/Index.tsx:1204)"}, "fullDescription": {"text": "`resources/js/Pages/RecurringBilling/Index.tsx:1204` calls `GET /recurring-billing/${subId}/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/recurring-billing/<p>/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-57f4414df6e9442c", "name": "Dangling fetch: POST /recurring-billing/${subId}/events (resources/js/Pages/RecurringBilling/Index.tsx:1221)", "shortDescription": {"text": "Dangling fetch: POST /recurring-billing/${subId}/events (resources/js/Pages/RecurringBilling/Index.tsx:1221)"}, "fullDescription": {"text": "`resources/js/Pages/RecurringBilling/Index.tsx:1221` calls `POST /recurring-billing/${subId}/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/recurring-billing/<p>/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7cb5b343c6647a55", "name": "Dangling fetch: GET /recurring-billing/${subId}/events (resources/js/Pages/RecurringBilling/Index.tsx:1236)", "shortDescription": {"text": "Dangling fetch: GET /recurring-billing/${subId}/events (resources/js/Pages/RecurringBilling/Index.tsx:1236)"}, "fullDescription": {"text": "`resources/js/Pages/RecurringBilling/Index.tsx:1236` calls `GET /recurring-billing/${subId}/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/recurring-billing/<p>/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a90de227986afe3", "name": "Dangling fetch: GET /recurring-billing/contacts/search?q=${encodeURIComponent(query.trim())} (resources/js/Pages/Recurri", "shortDescription": {"text": "Dangling fetch: GET /recurring-billing/contacts/search?q=${encodeURIComponent(query.trim())} (resources/js/Pages/RecurringBilling/Index.tsx:1466)"}, "fullDescription": {"text": "`resources/js/Pages/RecurringBilling/Index.tsx:1466` calls `GET /recurring-billing/contacts/search?q=${encodeURIComponent(query.trim())}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/recurring-billing/contacts/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-07fa1398d1c79b52", "name": "Dangling fetch: DELETE /contacts/${deleteTarget.id} (resources/js/Pages/Cliente/Index.tsx:470)", "shortDescription": {"text": "Dangling fetch: DELETE /contacts/${deleteTarget.id} (resources/js/Pages/Cliente/Index.tsx:470)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/Index.tsx:470` calls `DELETE /contacts/${deleteTarget.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fb8711dbc1a9421a", "name": "Dangling fetch: POST /cliente/draft (resources/js/Pages/Cliente/Index.tsx:576)", "shortDescription": {"text": "Dangling fetch: POST /cliente/draft (resources/js/Pages/Cliente/Index.tsx:576)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/Index.tsx:576` calls `POST /cliente/draft` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/draft`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db80f85ebd240f65", "name": "Dangling fetch: GET /contacts/lookup/cnpj/${cpfCnpjDigits} (resources/js/Pages/Cliente/_form/DadosFiscaisBRSection.tsx:1", "shortDescription": {"text": "Dangling fetch: GET /contacts/lookup/cnpj/${cpfCnpjDigits} (resources/js/Pages/Cliente/_form/DadosFiscaisBRSection.tsx:103)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_form/DadosFiscaisBRSection.tsx:103` calls `GET /contacts/lookup/cnpj/${cpfCnpjDigits}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/lookup/cnpj/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1ed364a380e296bc", "name": "Dangling fetch: GET /cliente/${contactId}/subscriptions-json (resources/js/Pages/Cliente/_show/SubscriptionsTab.tsx:67)", "shortDescription": {"text": "Dangling fetch: GET /cliente/${contactId}/subscriptions-json (resources/js/Pages/Cliente/_show/SubscriptionsTab.tsx:67)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_show/SubscriptionsTab.tsx:67` calls `GET /cliente/${contactId}/subscriptions-json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/subscriptions-json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-01c7135e918a1ad2", "name": "Dangling fetch: GET /cliente/${contactId}/rewards-json (resources/js/Pages/Cliente/_show/RewardPointsTab.tsx:66)", "shortDescription": {"text": "Dangling fetch: GET /cliente/${contactId}/rewards-json (resources/js/Pages/Cliente/_show/RewardPointsTab.tsx:66)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_show/RewardPointsTab.tsx:66` calls `GET /cliente/${contactId}/rewards-json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/rewards-json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-796a77f486cad0a9", "name": "Dangling fetch: GET /cliente/${contactId}/payments-json (resources/js/Pages/Cliente/_show/PaymentsTab.tsx:107)", "shortDescription": {"text": "Dangling fetch: GET /cliente/${contactId}/payments-json (resources/js/Pages/Cliente/_show/PaymentsTab.tsx:107)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_show/PaymentsTab.tsx:107` calls `GET /cliente/${contactId}/payments-json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/payments-json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a670af20202410b", "name": "Dangling fetch: POST /ledger-discount (resources/js/Pages/Cliente/_show/AddDiscountModal.tsx:61)", "shortDescription": {"text": "Dangling fetch: POST /ledger-discount (resources/js/Pages/Cliente/_show/AddDiscountModal.tsx:61)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_show/AddDiscountModal.tsx:61` calls `POST /ledger-discount` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ledger-discount`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-727e1bcea0d54379", "name": "Dangling fetch: GET /contacts/update-status/${contactId} (resources/js/Pages/Cliente/_show/ActionsMenu.tsx:69)", "shortDescription": {"text": "Dangling fetch: GET /contacts/update-status/${contactId} (resources/js/Pages/Cliente/_show/ActionsMenu.tsx:69)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_show/ActionsMenu.tsx:69` calls `GET /contacts/update-status/${contactId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/update-status/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-85bae91d32c0937a", "name": "Dangling fetch: POST /contacts/${contactId} (resources/js/Pages/Cliente/_show/ActionsMenu.tsx:92)", "shortDescription": {"text": "Dangling fetch: POST /contacts/${contactId} (resources/js/Pages/Cliente/_show/ActionsMenu.tsx:92)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_show/ActionsMenu.tsx:92` calls `POST /contacts/${contactId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-928d27693938e695", "name": "Dangling fetch: POST /contacts/send-ledger (resources/js/Pages/Cliente/_show/LedgerTab.tsx:131)", "shortDescription": {"text": "Dangling fetch: POST /contacts/send-ledger (resources/js/Pages/Cliente/_show/LedgerTab.tsx:131)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_show/LedgerTab.tsx:131` calls `POST /contacts/send-ledger` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/send-ledger`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2b75d3db7529f252", "name": "Dangling fetch: GET /cliente/${contactId}/anexos (resources/js/Pages/Cliente/_show/DocumentsTab.tsx:105)", "shortDescription": {"text": "Dangling fetch: GET /cliente/${contactId}/anexos (resources/js/Pages/Cliente/_show/DocumentsTab.tsx:105)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_show/DocumentsTab.tsx:105` calls `GET /cliente/${contactId}/anexos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/anexos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-891817e344137e66", "name": "Dangling fetch: POST /cliente/${contactId}/anexos (resources/js/Pages/Cliente/_show/DocumentsTab.tsx:185)", "shortDescription": {"text": "Dangling fetch: POST /cliente/${contactId}/anexos (resources/js/Pages/Cliente/_show/DocumentsTab.tsx:185)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_show/DocumentsTab.tsx:185` calls `POST /cliente/${contactId}/anexos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/anexos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd56e138faa609a3", "name": "Dangling fetch: POST /cliente/${contactId}/anexos/${docId} (resources/js/Pages/Cliente/_show/DocumentsTab.tsx:216)", "shortDescription": {"text": "Dangling fetch: POST /cliente/${contactId}/anexos/${docId} (resources/js/Pages/Cliente/_show/DocumentsTab.tsx:216)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_show/DocumentsTab.tsx:216` calls `POST /cliente/${contactId}/anexos/${docId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/anexos/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af9e49cbaf37b79d", "name": "Dangling fetch: PATCH /cliente/${contact.id}/contato (resources/js/Pages/Cliente/_drawer/ContatoTab.tsx:138)", "shortDescription": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/contato (resources/js/Pages/Cliente/_drawer/ContatoTab.tsx:138)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/ContatoTab.tsx:138` calls `PATCH /cliente/${contact.id}/contato` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/contato`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0fda2dd99ddafb4b", "name": "Dangling fetch: PATCH /cliente/${contact.id}/identificacao (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:176)", "shortDescription": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/identificacao (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:176)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:176` calls `PATCH /cliente/${contact.id}/identificacao` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/identificacao`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce6eb3e7965fd544", "name": "Dangling fetch: GET /cliente/lookup/cnpj/${digits} (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:323)", "shortDescription": {"text": "Dangling fetch: GET /cliente/lookup/cnpj/${digits} (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:323)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:323` calls `GET /cliente/lookup/cnpj/${digits}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/lookup/cnpj/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-68245f7ae3947231", "name": "Dangling fetch: GET /cliente/lookup/cnpj/${digits}/sefaz?uf=${encodeURIComponent(ufInicial)} (resources/js/Pages/Cliente", "shortDescription": {"text": "Dangling fetch: GET /cliente/lookup/cnpj/${digits}/sefaz?uf=${encodeURIComponent(ufInicial)} (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:333)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:333` calls `GET /cliente/lookup/cnpj/${digits}/sefaz?uf=${encodeURIComponent(ufInicial)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/lookup/cnpj/<p>/sefaz`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-88d23163045317f3", "name": "Dangling fetch: GET /cliente/lookup/cnpj/${digits}/sefaz?uf=${encodeURIComponent(ufFinal)} (resources/js/Pages/Cliente/_", "shortDescription": {"text": "Dangling fetch: GET /cliente/lookup/cnpj/${digits}/sefaz?uf=${encodeURIComponent(ufFinal)} (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:390)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:390` calls `GET /cliente/lookup/cnpj/${digits}/sefaz?uf=${encodeURIComponent(ufFinal)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/lookup/cnpj/<p>/sefaz`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ef2d035f1784c563", "name": "Dangling fetch: PATCH /cliente/${contact.id}/endereco (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:448)", "shortDescription": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/endereco (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:448)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:448` calls `PATCH /cliente/${contact.id}/endereco` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/endereco`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be73b27c7b5a9ce0", "name": "Dangling fetch: PATCH /cliente/${contact.id}/contato (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:470)", "shortDescription": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/contato (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:470)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:470` calls `PATCH /cliente/${contact.id}/contato` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/contato`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-02c83a8782023fe4", "name": "Dangling fetch: PATCH /cliente/${contact.id}/identificacao (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:497)", "shortDescription": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/identificacao (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:497)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:497` calls `PATCH /cliente/${contact.id}/identificacao` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/identificacao`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a158bd8317bec90d", "name": "Dangling fetch: POST /cliente/${contactId}/ia/${endpoint} (resources/js/Pages/Cliente/_drawer/IATab.tsx:121)", "shortDescription": {"text": "Dangling fetch: POST /cliente/${contactId}/ia/${endpoint} (resources/js/Pages/Cliente/_drawer/IATab.tsx:121)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/IATab.tsx:121` calls `POST /cliente/${contactId}/ia/${endpoint}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/ia/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2ae14cb80a1ac7a2", "name": "Dangling fetch: GET /cliente/${contact.id}/auditoria?page=${page}&per_page=${PER_PAGE} (resources/js/Pages/Cliente/_draw", "shortDescription": {"text": "Dangling fetch: GET /cliente/${contact.id}/auditoria?page=${page}&per_page=${PER_PAGE} (resources/js/Pages/Cliente/_drawer/AuditoriaTab.tsx:110)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/AuditoriaTab.tsx:110` calls `GET /cliente/${contact.id}/auditoria?page=${page}&per_page=${PER_PAGE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/auditoria`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9ddad81dddd61ddc", "name": "Dangling fetch: PATCH /cliente/${contact.id}/comercial (resources/js/Pages/Cliente/_drawer/ComercialTab.tsx:142)", "shortDescription": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/comercial (resources/js/Pages/Cliente/_drawer/ComercialTab.tsx:142)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/ComercialTab.tsx:142` calls `PATCH /cliente/${contact.id}/comercial` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/comercial`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-64b1acd9de787a74", "name": "Dangling fetch: PATCH /cliente/${contact.id}/endereco (resources/js/Pages/Cliente/_drawer/EnderecoTab.tsx:168)", "shortDescription": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/endereco (resources/js/Pages/Cliente/_drawer/EnderecoTab.tsx:168)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/EnderecoTab.tsx:168` calls `PATCH /cliente/${contact.id}/endereco` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/endereco`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6c3ec0e489b56757", "name": "Dangling fetch: GET /cliente/lookup/cep/${digits} (resources/js/Pages/Cliente/_drawer/EnderecoTab.tsx:243)", "shortDescription": {"text": "Dangling fetch: GET /cliente/lookup/cep/${digits} (resources/js/Pages/Cliente/_drawer/EnderecoTab.tsx:243)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/EnderecoTab.tsx:243` calls `GET /cliente/lookup/cep/${digits}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/lookup/cep/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2747811be64adf9b", "name": "Dangling fetch: GET /cliente/${contactId}/enderecos (resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:114)", "shortDescription": {"text": "Dangling fetch: GET /cliente/${contactId}/enderecos (resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:114)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:114` calls `GET /cliente/${contactId}/enderecos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/enderecos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12dfa14644a89a86", "name": "Dangling fetch: GET /cliente/lookup/cep/${digits} (resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:169)", "shortDescription": {"text": "Dangling fetch: GET /cliente/lookup/cep/${digits} (resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:169)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:169` calls `GET /cliente/lookup/cep/${digits}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/lookup/cep/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-45ebd19ff5458297", "name": "Dangling fetch: DELETE /cliente/${contactId}/enderecos/${id} (resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.ts", "shortDescription": {"text": "Dangling fetch: DELETE /cliente/${contactId}/enderecos/${id} (resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:237)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:237` calls `DELETE /cliente/${contactId}/enderecos/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/enderecos/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d102fe6f42e825b9", "name": "Dangling fetch: PATCH /cliente/${contactId}/enderecos/${id} (resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx", "shortDescription": {"text": "Dangling fetch: PATCH /cliente/${contactId}/enderecos/${id} (resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:251)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:251` calls `PATCH /cliente/${contactId}/enderecos/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/enderecos/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-98ec2c7e2d983bbb", "name": "Dangling fetch: PATCH /cliente/${contact.id}/classificacao (resources/js/Pages/Cliente/_drawer/ClassificacaoTab.tsx:177)", "shortDescription": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/classificacao (resources/js/Pages/Cliente/_drawer/ClassificacaoTab.tsx:177)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/ClassificacaoTab.tsx:177` calls `PATCH /cliente/${contact.id}/classificacao` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/classificacao`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-15bce34324f8db92", "name": "Dangling fetch: PATCH /cliente/${contact.id}/papeis (resources/js/Pages/Cliente/_drawer/ClassificacaoTab.tsx:302)", "shortDescription": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/papeis (resources/js/Pages/Cliente/_drawer/ClassificacaoTab.tsx:302)"}, "fullDescription": {"text": "`resources/js/Pages/Cliente/_drawer/ClassificacaoTab.tsx:302` calls `PATCH /cliente/${contact.id}/papeis` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cliente/<p>/papeis`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3ef66b9f88c04194", "name": "Dangling fetch: GET /products/list?${params.toString()} (resources/js/Pages/Repair/JobSheet/AddParts.tsx:115)", "shortDescription": {"text": "Dangling fetch: GET /products/list?${params.toString()} (resources/js/Pages/Repair/JobSheet/AddParts.tsx:115)"}, "fullDescription": {"text": "`resources/js/Pages/Repair/JobSheet/AddParts.tsx:115` calls `GET /products/list?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/products/list`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-60e4de243bb5a35b", "name": "Dangling fetch: GET /team-mcp/cc-sessions/${uuid} (resources/js/Pages/team-mcp/CcSessions/Index.tsx:219)", "shortDescription": {"text": "Dangling fetch: GET /team-mcp/cc-sessions/${uuid} (resources/js/Pages/team-mcp/CcSessions/Index.tsx:219)"}, "fullDescription": {"text": "`resources/js/Pages/team-mcp/CcSessions/Index.tsx:219` calls `GET /team-mcp/cc-sessions/${uuid}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/team-mcp/cc-sessions/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f6a2fef0bcc6384", "name": "Dangling fetch: PATCH /team-mcp/tasks/${id}/status (resources/js/Pages/team-mcp/Tasks/Index.tsx:112)", "shortDescription": {"text": "Dangling fetch: PATCH /team-mcp/tasks/${id}/status (resources/js/Pages/team-mcp/Tasks/Index.tsx:112)"}, "fullDescription": {"text": "`resources/js/Pages/team-mcp/Tasks/Index.tsx:112` calls `PATCH /team-mcp/tasks/${id}/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/team-mcp/tasks/<p>/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea6d230c4896380d", "name": "Dangling fetch: POST /team-mcp/team/${member.id}/token (resources/js/Pages/team-mcp/Team/Index.tsx:172)", "shortDescription": {"text": "Dangling fetch: POST /team-mcp/team/${member.id}/token (resources/js/Pages/team-mcp/Team/Index.tsx:172)"}, "fullDescription": {"text": "`resources/js/Pages/team-mcp/Team/Index.tsx:172` calls `POST /team-mcp/team/${member.id}/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/team-mcp/team/<p>/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7d07ae53620d0db1", "name": "Dangling fetch: POST /team-mcp/team/${member.id}/dxt (resources/js/Pages/team-mcp/Team/Index.tsx:208)", "shortDescription": {"text": "Dangling fetch: POST /team-mcp/team/${member.id}/dxt (resources/js/Pages/team-mcp/Team/Index.tsx:208)"}, "fullDescription": {"text": "`resources/js/Pages/team-mcp/Team/Index.tsx:208` calls `POST /team-mcp/team/${member.id}/dxt` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/team-mcp/team/<p>/dxt`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-973471d5335b470c", "name": "Dangling fetch: GET /team-mcp/team/${user.id}/tokens (resources/js/Pages/team-mcp/Team/Index.tsx:566)", "shortDescription": {"text": "Dangling fetch: GET /team-mcp/team/${user.id}/tokens (resources/js/Pages/team-mcp/Team/Index.tsx:566)"}, "fullDescription": {"text": "`resources/js/Pages/team-mcp/Team/Index.tsx:566` calls `GET /team-mcp/team/${user.id}/tokens` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/team-mcp/team/<p>/tokens`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e3c67ad9ee735fa", "name": "Dangling fetch: DELETE /team-mcp/team/${user.id}/token/${t.id} (resources/js/Pages/team-mcp/Team/Index.tsx:591)", "shortDescription": {"text": "Dangling fetch: DELETE /team-mcp/team/${user.id}/token/${t.id} (resources/js/Pages/team-mcp/Team/Index.tsx:591)"}, "fullDescription": {"text": "`resources/js/Pages/team-mcp/Team/Index.tsx:591` calls `DELETE /team-mcp/team/${user.id}/token/${t.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/team-mcp/team/<p>/token/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c63c987ad62677ae", "name": "Dangling fetch: POST /team-mcp/team/${user.id}/quota (resources/js/Pages/team-mcp/Team/Index.tsx:712)", "shortDescription": {"text": "Dangling fetch: POST /team-mcp/team/${user.id}/quota (resources/js/Pages/team-mcp/Team/Index.tsx:712)"}, "fullDescription": {"text": "`resources/js/Pages/team-mcp/Team/Index.tsx:712` calls `POST /team-mcp/team/${user.id}/quota` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/team-mcp/team/<p>/quota`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb5e24ab4160ac21", "name": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId} (resources/js/Pages/OficinaAuto/ProducaoOficina/_comp", "shortDescription": {"text": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId} (resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceOrderRichSheet.tsx:205)"}, "fullDescription": {"text": "`resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceOrderRichSheet.tsx:205` calls `GET /oficina-auto/service-orders/${serviceOrderId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oficina-auto/service-orders/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-465fb73243629ab5", "name": "Dangling fetch: DELETE /oficina-auto/ordens-servico/${data.id}/items/${item.id} (resources/js/Pages/OficinaAuto/Producao", "shortDescription": {"text": "Dangling fetch: DELETE /oficina-auto/ordens-servico/${data.id}/items/${item.id} (resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceOrderRichSheet.tsx:258)"}, "fullDescription": {"text": "`resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceOrderRichSheet.tsx:258` calls `DELETE /oficina-auto/ordens-servico/${data.id}/items/${item.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oficina-auto/ordens-servico/<p>/items/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0e9d10edfa2903e3", "name": "Dangling fetch: DELETE /oficina-auto/ordens-servico/${order.id}/items/${item.id} (resources/js/Pages/OficinaAuto/Service", "shortDescription": {"text": "Dangling fetch: DELETE /oficina-auto/ordens-servico/${order.id}/items/${item.id} (resources/js/Pages/OficinaAuto/ServiceOrders/Edit.tsx:137)"}, "fullDescription": {"text": "`resources/js/Pages/OficinaAuto/ServiceOrders/Edit.tsx:137` calls `DELETE /oficina-auto/ordens-servico/${order.id}/items/${item.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oficina-auto/ordens-servico/<p>/items/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c9011586f3ddf0aa", "name": "Dangling fetch: DELETE /oficina-auto/ordens-servico/${order.id}/items/${item.id} (resources/js/Pages/OficinaAuto/Service", "shortDescription": {"text": "Dangling fetch: DELETE /oficina-auto/ordens-servico/${order.id}/items/${item.id} (resources/js/Pages/OficinaAuto/ServiceOrders/Show.tsx:107)"}, "fullDescription": {"text": "`resources/js/Pages/OficinaAuto/ServiceOrders/Show.tsx:107` calls `DELETE /oficina-auto/ordens-servico/${order.id}/items/${item.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oficina-auto/ordens-servico/<p>/items/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b78ec358e411ba55", "name": "Dangling fetch: POST /oficina-auto/service-orders/${pending.subjectId}/fsm/execute (resources/js/Pages/OficinaAuto/Servi", "shortDescription": {"text": "Dangling fetch: POST /oficina-auto/service-orders/${pending.subjectId}/fsm/execute (resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx:431)"}, "fullDescription": {"text": "`resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx:431` calls `POST /oficina-auto/service-orders/${pending.subjectId}/fsm/execute` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oficina-auto/service-orders/<p>/fsm/execute`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd68152bd4be83d9", "name": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId}/fsm/actions (resources/js/Pages/OficinaAuto/ServiceOr", "shortDescription": {"text": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId}/fsm/actions (resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStagePipeline.tsx:68)"}, "fullDescription": {"text": "`resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStagePipeline.tsx:68` calls `GET /oficina-auto/service-orders/${serviceOrderId}/fsm/actions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oficina-auto/service-orders/<p>/fsm/actions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d58abacbaeaeac0", "name": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId}/history (resources/js/Pages/OficinaAuto/ServiceOrders", "shortDescription": {"text": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId}/history (resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderTimeline.tsx:83)"}, "fullDescription": {"text": "`resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderTimeline.tsx:83` calls `GET /oficina-auto/service-orders/${serviceOrderId}/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oficina-auto/service-orders/<p>/history`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eaf0b0519e57ef50", "name": "Dangling fetch: POST /oficina-auto/service-orders/${serviceOrderId}/fsm/start-pipeline (resources/js/Pages/OficinaAuto/S", "shortDescription": {"text": "Dangling fetch: POST /oficina-auto/service-orders/${serviceOrderId}/fsm/start-pipeline (resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderFsmActionPanel.tsx:127)"}, "fullDescription": {"text": "`resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderFsmActionPanel.tsx:127` calls `POST /oficina-auto/service-orders/${serviceOrderId}/fsm/start-pipeline` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oficina-auto/service-orders/<p>/fsm/start-pipeline`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d5e2783587435a12", "name": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId}/fsm/actions (resources/js/Pages/OficinaAuto/ServiceOr", "shortDescription": {"text": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId}/fsm/actions (resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderFsmActionPanel.tsx:197)"}, "fullDescription": {"text": "`resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderFsmActionPanel.tsx:197` calls `GET /oficina-auto/service-orders/${serviceOrderId}/fsm/actions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oficina-auto/service-orders/<p>/fsm/actions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d02fa9388f7cd7ac", "name": "Dangling fetch: POST /oficina-auto/service-orders/${serviceOrderId}/fsm/execute (resources/js/Pages/OficinaAuto/ServiceO", "shortDescription": {"text": "Dangling fetch: POST /oficina-auto/service-orders/${serviceOrderId}/fsm/execute (resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderFsmActionPanel.tsx:230)"}, "fullDescription": {"text": "`resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderFsmActionPanel.tsx:230` calls `POST /oficina-auto/service-orders/${serviceOrderId}/fsm/execute` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oficina-auto/service-orders/<p>/fsm/execute`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-971250b9d518e01f", "name": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId}/fsm/gate (resources/js/Pages/OficinaAuto/ServiceOrder", "shortDescription": {"text": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId}/fsm/gate (resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStageGate.tsx:89)"}, "fullDescription": {"text": "`resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStageGate.tsx:89` calls `GET /oficina-auto/service-orders/${serviceOrderId}/fsm/gate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oficina-auto/service-orders/<p>/fsm/gate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-47724280d71b020d", "name": "Dangling fetch: POST /oficina-auto/service-orders/${serviceOrderId}/fsm/execute (resources/js/Pages/OficinaAuto/ServiceO", "shortDescription": {"text": "Dangling fetch: POST /oficina-auto/service-orders/${serviceOrderId}/fsm/execute (resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStageGate.tsx:132)"}, "fullDescription": {"text": "`resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStageGate.tsx:132` calls `POST /oficina-auto/service-orders/${serviceOrderId}/fsm/execute` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oficina-auto/service-orders/<p>/fsm/execute`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b56eef7e296f280", "name": "Dangling fetch: POST /oficina-auto/ordens-servico/${serviceOrderId}/dvi/${dvi.id}/to-orcamento (resources/js/Pages/Ofici", "shortDescription": {"text": "Dangling fetch: POST /oficina-auto/ordens-servico/${serviceOrderId}/dvi/${dvi.id}/to-orcamento (resources/js/Pages/OficinaAuto/ServiceOrders/_components/DviBudgetSection.tsx:59)"}, "fullDescription": {"text": "`resources/js/Pages/OficinaAuto/ServiceOrders/_components/DviBudgetSection.tsx:59` calls `POST /oficina-auto/ordens-servico/${serviceOrderId}/dvi/${dvi.id}/to-orcamento` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oficina-auto/ordens-servico/<p>/dvi/<p>/to-orcamento`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f033c3108e4091c3", "name": "Dangling fetch: POST /oficina-auto/veiculos/consulta-placa (resources/js/Pages/OficinaAuto/Vehicles/Create.tsx:84)", "shortDescription": {"text": "Dangling fetch: POST /oficina-auto/veiculos/consulta-placa (resources/js/Pages/OficinaAuto/Vehicles/Create.tsx:84)"}, "fullDescription": {"text": "`resources/js/Pages/OficinaAuto/Vehicles/Create.tsx:84` calls `POST /oficina-auto/veiculos/consulta-placa` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/oficina-auto/veiculos/consulta-placa`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce0c48678069401d", "name": "Dangling fetch: GET /nfe-brasil/manifestacao/${dfeId}/itens (resources/js/Pages/NfeBrasil/Manifestacao/_components/Linke", "shortDescription": {"text": "Dangling fetch: GET /nfe-brasil/manifestacao/${dfeId}/itens (resources/js/Pages/NfeBrasil/Manifestacao/_components/LinkedItens.tsx:28)"}, "fullDescription": {"text": "`resources/js/Pages/NfeBrasil/Manifestacao/_components/LinkedItens.tsx:28` calls `GET /nfe-brasil/manifestacao/${dfeId}/itens` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/nfe-brasil/manifestacao/<p>/itens`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ab2118e1ae05f281", "name": "Dangling fetch: GET /nfe-brasil/manifestacao/${dfeId}/eventos (resources/js/Pages/NfeBrasil/Manifestacao/_components/Lin", "shortDescription": {"text": "Dangling fetch: GET /nfe-brasil/manifestacao/${dfeId}/eventos (resources/js/Pages/NfeBrasil/Manifestacao/_components/LinkedHistorico.tsx:25)"}, "fullDescription": {"text": "`resources/js/Pages/NfeBrasil/Manifestacao/_components/LinkedHistorico.tsx:25` calls `GET /nfe-brasil/manifestacao/${dfeId}/eventos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/nfe-brasil/manifestacao/<p>/eventos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-61841ff01ff1f1cd", "name": "Dangling fetch: POST /ia/conversas/${conversaId}/mensagens/stream (resources/js/Pages/Jana/_components/AssistantUiChat.t", "shortDescription": {"text": "Dangling fetch: POST /ia/conversas/${conversaId}/mensagens/stream (resources/js/Pages/Jana/_components/AssistantUiChat.tsx:350)"}, "fullDescription": {"text": "`resources/js/Pages/Jana/_components/AssistantUiChat.tsx:350` calls `POST /ia/conversas/${conversaId}/mensagens/stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ia/conversas/<p>/mensagens/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c47d0b02413cfd16", "name": "Dangling fetch: POST /vestuario/etiquetas/lote/${format} (resources/js/Pages/Vestuario/Etiquetas/Index.tsx:104)", "shortDescription": {"text": "Dangling fetch: POST /vestuario/etiquetas/lote/${format} (resources/js/Pages/Vestuario/Etiquetas/Index.tsx:104)"}, "fullDescription": {"text": "`resources/js/Pages/Vestuario/Etiquetas/Index.tsx:104` calls `POST /vestuario/etiquetas/lote/${format}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vestuario/etiquetas/lote/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9bc9a6d890edb3a8", "name": "Dangling fetch: GET /sells-list-json?${params.toString()} (resources/js/Pages/Sells/Index.tsx:708)", "shortDescription": {"text": "Dangling fetch: GET /sells-list-json?${params.toString()} (resources/js/Pages/Sells/Index.tsx:708)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/Index.tsx:708` calls `GET /sells-list-json?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sells-list-json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9b6f807d5129f340", "name": "Dangling fetch: GET /products/list?${params.toString()} (resources/js/Pages/Sells/Create.tsx:427)", "shortDescription": {"text": "Dangling fetch: GET /products/list?${params.toString()} (resources/js/Pages/Sells/Create.tsx:427)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/Create.tsx:427` calls `GET /products/list?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/products/list`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6e71626879084cfb", "name": "Dangling fetch: POST /nfse/transactions/${venda.id}/emitir (resources/js/Pages/Sells/_components/VdNfseEmitModal.tsx:134", "shortDescription": {"text": "Dangling fetch: POST /nfse/transactions/${venda.id}/emitir (resources/js/Pages/Sells/_components/VdNfseEmitModal.tsx:134)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/VdNfseEmitModal.tsx:134` calls `POST /nfse/transactions/${venda.id}/emitir` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/nfse/transactions/<p>/emitir`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5434822e30d20bae", "name": "Dangling fetch: GET /contacts/customers?${params.toString()} (resources/js/Pages/Sells/_components/CustomerSearchAutocom", "shortDescription": {"text": "Dangling fetch: GET /contacts/customers?${params.toString()} (resources/js/Pages/Sells/_components/CustomerSearchAutocomplete.tsx:131)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/CustomerSearchAutocomplete.tsx:131` calls `GET /contacts/customers?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/customers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e4c31c74c7bb725c", "name": "Dangling fetch: POST /sells/${saleId}/quick-payment (resources/js/Pages/Sells/_components/QuickPaymentPopover.tsx:110)", "shortDescription": {"text": "Dangling fetch: POST /sells/${saleId}/quick-payment (resources/js/Pages/Sells/_components/QuickPaymentPopover.tsx:110)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/QuickPaymentPopover.tsx:110` calls `POST /sells/${saleId}/quick-payment` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sells/<p>/quick-payment`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b9b69b56fd418649", "name": "Dangling fetch: GET /api/sells/${saleId}/fsm-actions (resources/js/Pages/Sells/_components/VdNextActionPanel.tsx:114)", "shortDescription": {"text": "Dangling fetch: GET /api/sells/${saleId}/fsm-actions (resources/js/Pages/Sells/_components/VdNextActionPanel.tsx:114)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/VdNextActionPanel.tsx:114` calls `GET /api/sells/${saleId}/fsm-actions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sells/<p>/fsm-actions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b0a94e9a7f057b62", "name": "Dangling fetch: POST /sells/${saleId}/fsm-action (resources/js/Pages/Sells/_components/VdNextActionPanel.tsx:143)", "shortDescription": {"text": "Dangling fetch: POST /sells/${saleId}/fsm-action (resources/js/Pages/Sells/_components/VdNextActionPanel.tsx:143)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/VdNextActionPanel.tsx:143` calls `POST /sells/${saleId}/fsm-action` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sells/<p>/fsm-action`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db3809dcab2ca51f", "name": "Dangling fetch: POST /sells/${transactionId}/create-os (resources/js/Pages/Sells/_components/CriarOsButton.tsx:56)", "shortDescription": {"text": "Dangling fetch: POST /sells/${transactionId}/create-os (resources/js/Pages/Sells/_components/CriarOsButton.tsx:56)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/CriarOsButton.tsx:56` calls `POST /sells/${transactionId}/create-os` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sells/<p>/create-os`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c15e63aadc4d3f8f", "name": "Dangling fetch: POST /sells/${saleId}/quick-payment (resources/js/Pages/Sells/_components/QuickPaymentDialog.tsx:103)", "shortDescription": {"text": "Dangling fetch: POST /sells/${saleId}/quick-payment (resources/js/Pages/Sells/_components/QuickPaymentDialog.tsx:103)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/QuickPaymentDialog.tsx:103` calls `POST /sells/${saleId}/quick-payment` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sells/<p>/quick-payment`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6025e8b1f9d22cb2", "name": "Dangling fetch: POST /contacts (resources/js/Pages/Sells/_components/QuickAddCustomerSheet.tsx:105)", "shortDescription": {"text": "Dangling fetch: POST /contacts (resources/js/Pages/Sells/_components/QuickAddCustomerSheet.tsx:105)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/QuickAddCustomerSheet.tsx:105` calls `POST /contacts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a97d69c65f88fec0", "name": "Dangling fetch: POST /sells/${venda.id}/emitir-cobranca (resources/js/Pages/Sells/_components/CobrancaDrawer.tsx:66)", "shortDescription": {"text": "Dangling fetch: POST /sells/${venda.id}/emitir-cobranca (resources/js/Pages/Sells/_components/CobrancaDrawer.tsx:66)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/CobrancaDrawer.tsx:66` calls `POST /sells/${venda.id}/emitir-cobranca` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sells/<p>/emitir-cobranca`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-768148c7ba607345", "name": "Dangling fetch: GET /products/list?${params.toString()} (resources/js/Pages/Sells/_components/ProductSearchAutocomplete.", "shortDescription": {"text": "Dangling fetch: GET /products/list?${params.toString()} (resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:221)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:221` calls `GET /products/list?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/products/list`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d34ad4dc4cf10706", "name": "Dangling fetch: GET /products/list?${params.toString()} (resources/js/Pages/Sells/_components/ProductSearchAutocomplete.", "shortDescription": {"text": "Dangling fetch: GET /products/list?${params.toString()} (resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:324)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:324` calls `GET /products/list?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/products/list`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-63ceb067a900fb5a", "name": "Dangling fetch: GET /sells/${saleId}/sheet-data (resources/js/Pages/Sells/_components/SaleSheet.tsx:222)", "shortDescription": {"text": "Dangling fetch: GET /sells/${saleId}/sheet-data (resources/js/Pages/Sells/_components/SaleSheet.tsx:222)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/SaleSheet.tsx:222` calls `GET /sells/${saleId}/sheet-data` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sells/<p>/sheet-data`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c02bcfccf5096260", "name": "Dangling fetch: POST /sells/${saleId}/quick-payment (resources/js/Pages/Sells/_components/SaleSheet.tsx:253)", "shortDescription": {"text": "Dangling fetch: POST /sells/${saleId}/quick-payment (resources/js/Pages/Sells/_components/SaleSheet.tsx:253)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/SaleSheet.tsx:253` calls `POST /sells/${saleId}/quick-payment` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sells/<p>/quick-payment`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c6494298988fade1", "name": "Dangling fetch: POST /nfe-brasil/transactions/${venda.id}/emitir (resources/js/Pages/Sells/_components/VdNfeEmitModal.ts", "shortDescription": {"text": "Dangling fetch: POST /nfe-brasil/transactions/${venda.id}/emitir (resources/js/Pages/Sells/_components/VdNfeEmitModal.tsx:155)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/VdNfeEmitModal.tsx:155` calls `POST /nfe-brasil/transactions/${venda.id}/emitir` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/nfe-brasil/transactions/<p>/emitir`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2534ddc9ee995fd7", "name": "Dangling fetch: POST /sells/${saleId}/ai-ask (resources/js/Pages/Sells/_components/SaleAiPanel.tsx:76)", "shortDescription": {"text": "Dangling fetch: POST /sells/${saleId}/ai-ask (resources/js/Pages/Sells/_components/SaleAiPanel.tsx:76)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/SaleAiPanel.tsx:76` calls `POST /sells/${saleId}/ai-ask` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sells/<p>/ai-ask`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-726f74dc86c8dbca", "name": "Dangling fetch: POST /nfe-brasil/transactions/${saleId}/emitir (resources/js/Pages/Sells/_components/FiscalSection.tsx:3", "shortDescription": {"text": "Dangling fetch: POST /nfe-brasil/transactions/${saleId}/emitir (resources/js/Pages/Sells/_components/FiscalSection.tsx:38)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/FiscalSection.tsx:38` calls `POST /nfe-brasil/transactions/${saleId}/emitir` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/nfe-brasil/transactions/<p>/emitir`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-65c3d568c24e0cf7", "name": "Dangling fetch: POST /nfe-brasil/emissoes/${emissaoId}/reenviar-email (resources/js/Pages/Sells/_components/FiscalSectio", "shortDescription": {"text": "Dangling fetch: POST /nfe-brasil/emissoes/${emissaoId}/reenviar-email (resources/js/Pages/Sells/_components/FiscalSection.tsx:66)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/FiscalSection.tsx:66` calls `POST /nfe-brasil/emissoes/${emissaoId}/reenviar-email` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/nfe-brasil/emissoes/<p>/reenviar-email`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-03c9aca4020aeca6", "name": "Dangling fetch: POST /sells/${saleId}/fsm-start-pipeline (resources/js/Pages/Sells/_components/FsmActionPanel.tsx:91)", "shortDescription": {"text": "Dangling fetch: POST /sells/${saleId}/fsm-start-pipeline (resources/js/Pages/Sells/_components/FsmActionPanel.tsx:91)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/FsmActionPanel.tsx:91` calls `POST /sells/${saleId}/fsm-start-pipeline` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sells/<p>/fsm-start-pipeline`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0e4badcabd3ac119", "name": "Dangling fetch: GET /api/sells/${saleId}/fsm-actions (resources/js/Pages/Sells/_components/FsmActionPanel.tsx:157)", "shortDescription": {"text": "Dangling fetch: GET /api/sells/${saleId}/fsm-actions (resources/js/Pages/Sells/_components/FsmActionPanel.tsx:157)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/FsmActionPanel.tsx:157` calls `GET /api/sells/${saleId}/fsm-actions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sells/<p>/fsm-actions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-552a875a1c377610", "name": "Dangling fetch: POST /sells/${saleId}/fsm-action (resources/js/Pages/Sells/_components/FsmActionPanel.tsx:197)", "shortDescription": {"text": "Dangling fetch: POST /sells/${saleId}/fsm-action (resources/js/Pages/Sells/_components/FsmActionPanel.tsx:197)"}, "fullDescription": {"text": "`resources/js/Pages/Sells/_components/FsmActionPanel.tsx:197` calls `POST /sells/${saleId}/fsm-action` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sells/<p>/fsm-action`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ab599404642a55c9", "name": "Dangling fetch: GET /kb/${slug}/show (resources/js/Pages/kb/Index.tsx:247)", "shortDescription": {"text": "Dangling fetch: GET /kb/${slug}/show (resources/js/Pages/kb/Index.tsx:247)"}, "fullDescription": {"text": "`resources/js/Pages/kb/Index.tsx:247` calls `GET /kb/${slug}/show` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/kb/<p>/show`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-913c1fe69bebcd63", "name": "Dangling fetch: DELETE /kb/${confirmDelete.slug} (resources/js/Pages/kb/Index.tsx:275)", "shortDescription": {"text": "Dangling fetch: DELETE /kb/${confirmDelete.slug} (resources/js/Pages/kb/Index.tsx:275)"}, "fullDescription": {"text": "`resources/js/Pages/kb/Index.tsx:275` calls `DELETE /kb/${confirmDelete.slug}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/kb/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d5e228cf3fd33b7", "name": "Dangling fetch: POST /kb/${slug}/restore (resources/js/Pages/kb/Index.tsx:302)", "shortDescription": {"text": "Dangling fetch: POST /kb/${slug}/restore (resources/js/Pages/kb/Index.tsx:302)"}, "fullDescription": {"text": "`resources/js/Pages/kb/Index.tsx:302` calls `POST /kb/${slug}/restore` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/kb/<p>/restore`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b320efa91ddf9c96", "name": "Dangling fetch: POST /nfe-brasil/configuracao/certificado/testar (resources/js/Pages/Fiscal/Config.tsx:160)", "shortDescription": {"text": "Dangling fetch: POST /nfe-brasil/configuracao/certificado/testar (resources/js/Pages/Fiscal/Config.tsx:160)"}, "fullDescription": {"text": "`resources/js/Pages/Fiscal/Config.tsx:160` calls `POST /nfe-brasil/configuracao/certificado/testar` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/nfe-brasil/configuracao/certificado/testar`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6340b853fea65957", "name": "Dangling fetch: GET /fiscal/palette/search?q=${encodeURIComponent(query.trim())} (resources/js/Pages/Fiscal/_components/", "shortDescription": {"text": "Dangling fetch: GET /fiscal/palette/search?q=${encodeURIComponent(query.trim())} (resources/js/Pages/Fiscal/_components/CmdKPalette.tsx:135)"}, "fullDescription": {"text": "`resources/js/Pages/Fiscal/_components/CmdKPalette.tsx:135` calls `GET /fiscal/palette/search?q=${encodeURIComponent(query.trim())}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/fiscal/palette/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e1a9e4de210c3db", "name": "Dangling fetch: POST /ponto/intercorrencias-ai/classify (resources/js/Pages/Ponto/Intercorrencias/Create.tsx:99)", "shortDescription": {"text": "Dangling fetch: POST /ponto/intercorrencias-ai/classify (resources/js/Pages/Ponto/Intercorrencias/Create.tsx:99)"}, "fullDescription": {"text": "`resources/js/Pages/Ponto/Intercorrencias/Create.tsx:99` calls `POST /ponto/intercorrencias-ai/classify` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ponto/intercorrencias-ai/classify`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-73fe453dceb23223", "name": "Dangling fetch: POST /api/consent (resources/js/Lib/consent.ts:44)", "shortDescription": {"text": "Dangling fetch: POST /api/consent (resources/js/Lib/consent.ts:44)"}, "fullDescription": {"text": "`resources/js/Lib/consent.ts:44` calls `POST /api/consent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/consent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-684f0e83ba7e1558", "name": "Unused endpoint: GET ", "shortDescription": {"text": "Unused endpoint: GET "}, "fullDescription": {"text": "`resources/plugins/jquery-validation-1.16.0/demo/tinymce/tiny_mce.js` declares `GET ` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-99fc36db98c134ce", "name": "Unused endpoint: POST /logout", "shortDescription": {"text": "Unused endpoint: POST /logout"}, "fullDescription": {"text": "`prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Layouts/AppShell.tsx` declares `POST /logout` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f42e5c7686b574bf", "name": "Unused endpoint: GET /financeiro/unificado", "shortDescription": {"text": "Unused endpoint: GET /financeiro/unificado"}, "fullDescription": {"text": "`prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/Index.tsx` declares `GET /financeiro/unificado` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1a52eb7ce0de98ee", "name": "Unused endpoint: GET /governance/audit", "shortDescription": {"text": "Unused endpoint: GET /governance/audit"}, "fullDescription": {"text": "`resources/js/Pages/governance/Audit.tsx` declares `GET /governance/audit` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3f2e7cb74155e8a2", "name": "Unused endpoint: GET /payments/v2", "shortDescription": {"text": "Unused endpoint: GET /payments/v2"}, "fullDescription": {"text": "`resources/js/Pages/TransactionPayment/Index.tsx` declares `GET /payments/v2` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a7b2b71b15575f29", "name": "Unused endpoint: GET /essentials/todo", "shortDescription": {"text": "Unused endpoint: GET /essentials/todo"}, "fullDescription": {"text": "`resources/js/Pages/Essentials/Todo/Index.tsx` declares `GET /essentials/todo` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-108e29b3e8821858", "name": "Unused endpoint: POST /essentials/todo/add-comment", "shortDescription": {"text": "Unused endpoint: POST /essentials/todo/add-comment"}, "fullDescription": {"text": "`resources/js/Pages/Essentials/Todo/Show.tsx` declares `POST /essentials/todo/add-comment` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5349d841daa52605", "name": "Unused endpoint: POST /essentials/todo/upload-document", "shortDescription": {"text": "Unused endpoint: POST /essentials/todo/upload-document"}, "fullDescription": {"text": "`resources/js/Pages/Essentials/Todo/Show.tsx` declares `POST /essentials/todo/upload-document` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-76c8636d85e2d560", "name": "Unused endpoint: POST /essentials/todo", "shortDescription": {"text": "Unused endpoint: POST /essentials/todo"}, "fullDescription": {"text": "`resources/js/Pages/Essentials/Todo/Create.tsx` declares `POST /essentials/todo` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1c2b685bd1edbd56", "name": "Unused endpoint: POST /hrm/settings", "shortDescription": {"text": "Unused endpoint: POST /hrm/settings"}, "fullDescription": {"text": "`resources/js/Pages/Essentials/Settings/Index.tsx` declares `POST /hrm/settings` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9cf106dc04d0c2e3", "name": "Unused endpoint: POST /essentials/knowledge-base", "shortDescription": {"text": "Unused endpoint: POST /essentials/knowledge-base"}, "fullDescription": {"text": "`resources/js/Pages/Essentials/Knowledge/Create.tsx` declares `POST /essentials/knowledge-base` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4a1898fa72485a31", "name": "Unused endpoint: GET /hrm/holiday", "shortDescription": {"text": "Unused endpoint: GET /hrm/holiday"}, "fullDescription": {"text": "`resources/js/Pages/Essentials/Holidays/Index.tsx` declares `GET /hrm/holiday` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-608e911ba8e71683", "name": "Unused endpoint: POST /essentials/messages", "shortDescription": {"text": "Unused endpoint: POST /essentials/messages"}, "fullDescription": {"text": "`resources/js/Pages/Essentials/Messages/Index.tsx` declares `POST /essentials/messages` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2abcfc3aae8db25d", "name": "Unused endpoint: POST /essentials/document", "shortDescription": {"text": "Unused endpoint: POST /essentials/document"}, "fullDescription": {"text": "`resources/js/Pages/Essentials/Documents/Index.tsx` declares `POST /essentials/document` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e3f3a4d2d4ed1e3e", "name": "Unused endpoint: GET /stock-adjustments", "shortDescription": {"text": "Unused endpoint: GET /stock-adjustments"}, "fullDescription": {"text": "`resources/js/Pages/StockAdjustment/Index.tsx` declares `GET /stock-adjustments` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ecb3b4fd53790e8", "name": "Unused endpoint: POST /stock-adjustments", "shortDescription": {"text": "Unused endpoint: POST /stock-adjustments"}, "fullDescription": {"text": "`resources/js/Pages/StockAdjustment/Create.tsx` declares `POST /stock-adjustments` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-18e749ab69d909ad", "name": "Unused endpoint: POST /settings/payment-gateways", "shortDescription": {"text": "Unused endpoint: POST /settings/payment-gateways"}, "fullDescription": {"text": "`resources/js/Pages/Settings/PaymentGateways/_components/SheetNovoGateway.tsx` declares `POST /settings/payment-gateways` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d4bec551a23b817f", "name": "Unused endpoint: POST /memcofre/ingest", "shortDescription": {"text": "Unused endpoint: POST /memcofre/ingest"}, "fullDescription": {"text": "`resources/js/Pages/MemCofre/Ingest.tsx` declares `POST /memcofre/ingest` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bfaa2a5aa4242ee2", "name": "Unused endpoint: GET /memcofre/inbox", "shortDescription": {"text": "Unused endpoint: GET /memcofre/inbox"}, "fullDescription": {"text": "`resources/js/Pages/MemCofre/Inbox.tsx` declares `GET /memcofre/inbox` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0afbc79800f4dcb4", "name": "Unused endpoint: GET /project-mgmt/burndown", "shortDescription": {"text": "Unused endpoint: GET /project-mgmt/burndown"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Burndown/Index.tsx` declares `GET /project-mgmt/burndown` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1ac5bccfa59a31cd", "name": "Unused endpoint: GET /project-mgmt/activity", "shortDescription": {"text": "Unused endpoint: GET /project-mgmt/activity"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Activity/Index.tsx` declares `GET /project-mgmt/activity` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6e69ce91e2e80a88", "name": "Unused endpoint: GET /project-mgmt/my-work", "shortDescription": {"text": "Unused endpoint: GET /project-mgmt/my-work"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/MyWork/Index.tsx` declares `GET /project-mgmt/my-work` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1659e12261a24c02", "name": "Unused endpoint: GET /project-mgmt/inbox", "shortDescription": {"text": "Unused endpoint: GET /project-mgmt/inbox"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Inbox/Index.tsx` declares `GET /project-mgmt/inbox` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-92e984a7a731d447", "name": "Unused endpoint: GET /project-mgmt/backlog", "shortDescription": {"text": "Unused endpoint: GET /project-mgmt/backlog"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Backlog/Index.tsx` declares `GET /project-mgmt/backlog` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e1dbc233bc89b307", "name": "Unused endpoint: GET /project-mgmt/board", "shortDescription": {"text": "Unused endpoint: GET /project-mgmt/board"}, "fullDescription": {"text": "`resources/js/Pages/ProjectMgmt/Board/Index.tsx` declares `GET /project-mgmt/board` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e6d60eef863ddc92", "name": "Unused endpoint: GET /stock-transfers", "shortDescription": {"text": "Unused endpoint: GET /stock-transfers"}, "fullDescription": {"text": "`resources/js/Pages/StockTransfer/Index.tsx` declares `GET /stock-transfers` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0eb364fc12b7cd44", "name": "Unused endpoint: POST /stock-transfers", "shortDescription": {"text": "Unused endpoint: POST /stock-transfers"}, "fullDescription": {"text": "`resources/js/Pages/StockTransfer/Create.tsx` declares `POST /stock-transfers` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-647c7d859667527d", "name": "Unused endpoint: GET /ads/admin/decisoes", "shortDescription": {"text": "Unused endpoint: GET /ads/admin/decisoes"}, "fullDescription": {"text": "`resources/js/Pages/ads/Admin/Decisoes.tsx` declares `GET /ads/admin/decisoes` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3be31919c1caa4b7", "name": "Unused endpoint: POST /ads/admin/team-scopes/grant", "shortDescription": {"text": "Unused endpoint: POST /ads/admin/team-scopes/grant"}, "fullDescription": {"text": "`resources/js/Pages/ads/Admin/TeamScopes.tsx` declares `POST /ads/admin/team-scopes/grant` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7027568cfd92414d", "name": "Unused endpoint: POST /ads/admin/team-scopes/revoke", "shortDescription": {"text": "Unused endpoint: POST /ads/admin/team-scopes/revoke"}, "fullDescription": {"text": "`resources/js/Pages/ads/Admin/TeamScopes.tsx` declares `POST /ads/admin/team-scopes/revoke` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d296bbdd1f611731", "name": "Unused endpoint: POST /ads/admin/meta-skills", "shortDescription": {"text": "Unused endpoint: POST /ads/admin/meta-skills"}, "fullDescription": {"text": "`resources/js/Pages/ads/Admin/MetaSkills.tsx` declares `POST /ads/admin/meta-skills` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7ccde11c3785dac7", "name": "Unused endpoint: POST /ads/admin/projects", "shortDescription": {"text": "Unused endpoint: POST /ads/admin/projects"}, "fullDescription": {"text": "`resources/js/Pages/ads/Admin/Projects.tsx` declares `POST /ads/admin/projects` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-767c1c9985e7fa28", "name": "Unused endpoint: GET /financeiro", "shortDescription": {"text": "Unused endpoint: GET /financeiro"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Dashboard/Index.tsx` declares `GET /financeiro` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9215d96cbac300af", "name": "Unused endpoint: GET /financeiro/contas-receber", "shortDescription": {"text": "Unused endpoint: GET /financeiro/contas-receber"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/ContasReceber/Index.tsx` declares `GET /financeiro/contas-receber` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e6770af14b03a189", "name": "Unused endpoint: GET /financeiro/relatorios", "shortDescription": {"text": "Unused endpoint: GET /financeiro/relatorios"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Relatorios/Index.tsx` declares `GET /financeiro/relatorios` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e2e88a69bb6b842f", "name": "Unused endpoint: POST /financeiro/configuracoes/contador/grant", "shortDescription": {"text": "Unused endpoint: POST /financeiro/configuracoes/contador/grant"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Configuracoes/Contador.tsx` declares `POST /financeiro/configuracoes/contador/grant` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a0b2c911612056a6", "name": "Unused endpoint: POST /financeiro/cobranca/emitir", "shortDescription": {"text": "Unused endpoint: POST /financeiro/cobranca/emitir"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Cobranca/_components/SheetNovaCobranca.tsx` declares `POST /financeiro/cobranca/emitir` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-54ed0445594e44af", "name": "Unused endpoint: POST /financeiro/impostos/lancar", "shortDescription": {"text": "Unused endpoint: POST /financeiro/impostos/lancar"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Impostos/Index.tsx` declares `POST /financeiro/impostos/lancar` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c0cd998b369295d8", "name": "Unused endpoint: POST /advisor/logout", "shortDescription": {"text": "Unused endpoint: POST /advisor/logout"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Advisor/Dashboard.tsx` declares `POST /advisor/logout` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5267a3e677ac0126", "name": "Unused endpoint: POST /advisor/login", "shortDescription": {"text": "Unused endpoint: POST /advisor/login"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Advisor/Login.tsx` declares `POST /advisor/login` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be1b6ad7c43e00f0", "name": "Unused endpoint: POST /financeiro/unificado/bulk-update-categoria", "shortDescription": {"text": "Unused endpoint: POST /financeiro/unificado/bulk-update-categoria"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Unificado/Index.tsx` declares `POST /financeiro/unificado/bulk-update-categoria` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b5d2fdb801e7e3d6", "name": "Unused endpoint: POST /financeiro/unificado", "shortDescription": {"text": "Unused endpoint: POST /financeiro/unificado"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Unificado/_components/TituloCreateSheet.tsx` declares `POST /financeiro/unificado` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-77307488c5ff6d38", "name": "Unused endpoint: POST /financeiro/conciliacao/upload", "shortDescription": {"text": "Unused endpoint: POST /financeiro/conciliacao/upload"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Conciliacao/Index.tsx` declares `POST /financeiro/conciliacao/upload` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9d15ebeed06487ff", "name": "Unused endpoint: GET /financeiro/conciliacao", "shortDescription": {"text": "Unused endpoint: GET /financeiro/conciliacao"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Conciliacao/Index.tsx` declares `GET /financeiro/conciliacao` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f8b05ea65efe310", "name": "Unused endpoint: POST /financeiro/categorias", "shortDescription": {"text": "Unused endpoint: POST /financeiro/categorias"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/Categorias/components/CategoriaSheet.tsx` declares `POST /financeiro/categorias` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-422035bc48f6f61e", "name": "Unused endpoint: GET /financeiro/contas-pagar", "shortDescription": {"text": "Unused endpoint: GET /financeiro/contas-pagar"}, "fullDescription": {"text": "`resources/js/Pages/Financeiro/ContasPagar/Index.tsx` declares `GET /financeiro/contas-pagar` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2317ba4cf4d74fea", "name": "Unused endpoint: POST /recurring-billing", "shortDescription": {"text": "Unused endpoint: POST /recurring-billing"}, "fullDescription": {"text": "`resources/js/Pages/RecurringBilling/Index.tsx` declares `POST /recurring-billing` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8c0a069592bbded8", "name": "Unused endpoint: POST /recurring-billing/planos", "shortDescription": {"text": "Unused endpoint: POST /recurring-billing/planos"}, "fullDescription": {"text": "`resources/js/Pages/RecurringBilling/Planos/Create.tsx` declares `POST /recurring-billing/planos` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f80cb60b591052d", "name": "Unused endpoint: GET /repair/device-models", "shortDescription": {"text": "Unused endpoint: GET /repair/device-models"}, "fullDescription": {"text": "`resources/js/Pages/Repair/DeviceModels/Index.tsx` declares `GET /repair/device-models` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-585023193757b63e", "name": "Unused endpoint: GET /atendimento/metricas", "shortDescription": {"text": "Unused endpoint: GET /atendimento/metricas"}, "fullDescription": {"text": "`resources/js/Pages/Atendimento/Metricas/Index.tsx` declares `GET /atendimento/metricas` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/22478"}, "properties": {"repository": "wagnerra23/oimpresso.com", "repoUrl": "https://github.com/wagnerra23/oimpresso.com", "branch": "main"}, "results": [{"ruleId": "scanner-940107ca7aeaf780", "level": "note", "message": {"text": "Possibly dead Python function: fix_status"}, "properties": {"repobilityId": "12abd05469f126fd", "scanner": "scanner-primary", "fingerprint": "940107ca7aeaf780", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_specs.py:87"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-05026928180e430f", "level": "note", "message": {"text": "Possibly dead Python function: fix_related_adrs"}, "properties": {"repobilityId": "4ca4a8dce762c7a1", "scanner": "scanner-primary", "fingerprint": "05026928180e430f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_specs.py:106"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-31c788f0217da538", "level": "note", "message": {"text": "Possibly dead Python function: dedupe_yaml_list"}, "properties": {"repobilityId": "053c96491f5f80dd", "scanner": "scanner-primary", "fingerprint": "31c788f0217da538", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dedupe_adr_lists.py:32"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c4a259e331e012b6", "level": "note", "message": {"text": "Possibly dead Python function: dedupe_inline"}, "properties": {"repobilityId": "d71f4528c8f1ff6f", "scanner": "scanner-primary", "fingerprint": "c4a259e331e012b6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dedupe_adr_lists.py:54"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-261583d6e983f5fd", "level": "note", "message": {"text": "Possibly dead Python function: replace_related"}, "properties": {"repobilityId": "83bb6bb05dfb6c47", "scanner": "scanner-primary", "fingerprint": "261583d6e983f5fd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_charters.py:39"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-337edc5ec5acd4d6", "level": "note", "message": {"text": "Possibly dead Python function: fix_date"}, "properties": {"repobilityId": "772565d0f0756d64", "scanner": "scanner-primary", "fingerprint": "337edc5ec5acd4d6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_sessions.py:64"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a73699ef9c4c35d1", "level": "note", "message": {"text": "Possibly dead Python function: fix_authors"}, "properties": {"repobilityId": "43703b778bb9c38a", "scanner": "scanner-primary", "fingerprint": "a73699ef9c4c35d1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_sessions.py:108"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dddc62c88b6c048d", "level": "note", "message": {"text": "Possibly dead Python function: fix_related_adrs"}, "properties": {"repobilityId": "4ca4a8dce762c7a1", "scanner": "scanner-primary", "fingerprint": "dddc62c88b6c048d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_sessions.py:136"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1d1ed85ed1d4ba57", "level": "note", "message": {"text": "Possibly dead Python function: fix_duration"}, "properties": {"repobilityId": "b92fe416e379bfb1", "scanner": "scanner-primary", "fingerprint": "1d1ed85ed1d4ba57", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_sessions.py:181"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ba7cec4c0c84cfb6", "level": "note", "message": {"text": "Possibly dead Python function: fix_status"}, "properties": {"repobilityId": "12abd05469f126fd", "scanner": "scanner-primary", "fingerprint": "ba7cec4c0c84cfb6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_runbooks.py:88"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-573d24a3582e6d85", "level": "note", "message": {"text": "Possibly dead Python function: fix_related_adrs"}, "properties": {"repobilityId": "4ca4a8dce762c7a1", "scanner": "scanner-primary", "fingerprint": "573d24a3582e6d85", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_runbooks.py:107"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ae1927018f504276", "level": "note", "message": {"text": "Possibly dead Python function: hash_label"}, "properties": {"repobilityId": "70107b74b96d5c3e", "scanner": "scanner-primary", "fingerprint": "ae1927018f504276", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sells_grade_heatmap.py:30"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ccaec642bbe6cec7", "level": "note", "message": {"text": "Possibly dead Python function: fix_status"}, "properties": {"repobilityId": "12abd05469f126fd", "scanner": "scanner-primary", "fingerprint": "ccaec642bbe6cec7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_adrs_editable.py:56"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9be405727eb1c694", "level": "note", "message": {"text": "Possibly dead Python function: repl"}, "properties": {"repobilityId": "6f5d3779bbb8be8b", "scanner": "scanner-primary", "fingerprint": "9be405727eb1c694", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_adrs_editable.py:75"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b8e4c3bd1cd27e43", "level": "note", "message": {"text": "Possibly dead Python function: fix_yaml_list"}, "properties": {"repobilityId": "b3162ed1b0f83340", "scanner": "scanner-primary", "fingerprint": "b8e4c3bd1cd27e43", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_adrs_editable.py:116"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-acc3982715b75d62", "level": "note", "message": {"text": "Possibly dead Python function: fix_decided_at"}, "properties": {"repobilityId": "f6357400bb4fcdbf", "scanner": "scanner-primary", "fingerprint": "acc3982715b75d62", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_adrs_editable.py:142"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e58ba5972d10067d", "level": "note", "message": {"text": "Possibly dead Python function: fix_number"}, "properties": {"repobilityId": "eb1d31edf79747f0", "scanner": "scanner-primary", "fingerprint": "e58ba5972d10067d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_adrs_editable.py:161"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bd55aad1cc276ef2", "level": "note", "message": {"text": "Possibly dead Python function: slugify"}, "properties": {"repobilityId": "567b248aeba18f49", "scanner": "scanner-primary", "fingerprint": "bd55aad1cc276ef2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy-migration/generate-baseline.py:79"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-edb4754d631c4da5", "level": "note", "message": {"text": "Possibly dead Python function: topological_order"}, "properties": {"repobilityId": "63c328f978c5ce3b", "scanner": "scanner-primary", "fingerprint": "edb4754d631c4da5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy-migration/lib/fk_resolver.py:135"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9627e0f8297edca7", "level": "note", "message": {"text": "Possibly dead Python function: list_user_tables"}, "properties": {"repobilityId": "e260814875866768", "scanner": "scanner-primary", "fingerprint": "9627e0f8297edca7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy-migration/lib/firebird_reader.py:168"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-61a4a4afc6d3d847", "level": "note", "message": {"text": "Possibly dead Python function: read_last_codigo_processed"}, "properties": {"repobilityId": "52c2685626469c26", "scanner": "scanner-primary", "fingerprint": "61a4a4afc6d3d847", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy-migration/lib/sync_checkpoint.py:61"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e450f467fc04d237", "level": "note", "message": {"text": "Possibly dead Python function: mark_partial"}, "properties": {"repobilityId": "9cb5a036348f9dec", "scanner": "scanner-primary", "fingerprint": "e450f467fc04d237", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy-migration/lib/sync_checkpoint.py:170"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-461d87e849698daa", "level": "note", "message": {"text": "Possibly dead Python function: mark_chunk_progress"}, "properties": {"repobilityId": "426be98156d51fbf", "scanner": "scanner-primary", "fingerprint": "461d87e849698daa", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy-migration/lib/sync_checkpoint.py:206"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4f05c365dfd97da2", "level": "note", "message": {"text": "Possibly dead Python function: coverage_report"}, "properties": {"repobilityId": "0c1f13f6ec14d2fa", "scanner": "scanner-primary", "fingerprint": "4f05c365dfd97da2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy-migration/lib/ddl_parser.py:380"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e71eeffa5c3326d5", "level": "note", "message": {"text": "Possibly dead Python function: slugify_short"}, "properties": {"repobilityId": "6f7bed8da343f164", "scanner": "scanner-primary", "fingerprint": "e71eeffa5c3326d5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy-migration/sql-wr2-pessoas/gerar-sql-etapa1-cancelados-ativos.py:39"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-92aeeea8a77746c1", "level": "note", "message": {"text": "Possibly dead Python function: slugify"}, "properties": {"repobilityId": "567b248aeba18f49", "scanner": "scanner-primary", "fingerprint": "92aeeea8a77746c1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy-migration/sql-wr2-pessoas/gerar-sql-planos-mensalidade.py:14"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f2b2e247fc4765cd", "level": "note", "message": {"text": "Possibly dead Python function: n"}, "properties": {"repobilityId": "b6c25d3447b53ba3", "scanner": "scanner-primary", "fingerprint": "f2b2e247fc4765cd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy-migration/sql-wr2-pessoas/gerar-sql-cobrancas-boletos-firebird.py:57"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7d5b6ba0b9cdb6ba", "level": "note", "message": {"text": "File has no detected symbols: scripts/fix_adr_legacy_schema.py"}, "properties": {"repobilityId": "50f0c31586199479", "scanner": "scanner-primary", "fingerprint": "7d5b6ba0b9cdb6ba", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code-candidate"]}}, {"ruleId": "scanner-a8fa3ebcf2a56c45", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 Modules/Crm/Resources/assets/js/crm.js:872"}, "properties": {"repobilityId": "0b82fda6bbaedf88", "scanner": "scanner-primary", "fingerprint": "a8fa3ebcf2a56c45", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b3813d59653209c1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/vendas-page.jsx:157"}, "properties": {"repobilityId": "a0e2a0721c69727b", "scanner": "scanner-primary", "fingerprint": "b3813d59653209c1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d95fb58deee7b900", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/vendas-extras.jsx:538"}, "properties": {"repobilityId": "64c1c43e7e10c149", "scanner": "scanner-primary", "fingerprint": "d95fb58deee7b900", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-34937c46d131ade9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/vendas-extras.jsx:285"}, "properties": {"repobilityId": "9a99419d8986a2be", "scanner": "scanner-primary", "fingerprint": "34937c46d131ade9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4407feed63f59f14", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/boletos/cowork-app.jsx:359"}, "properties": {"repobilityId": "61f2717baef2426e", "scanner": "scanner-primary", "fingerprint": "4407feed63f59f14", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b8c9e4502b399eb3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/components/pg-payment-gateways-page.jsx:219"}, "properties": {"repobilityId": "744947c1ae3ace76", "scanner": "scanner-primary", "fingerprint": "b8c9e4502b399eb3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4712f24bbd7f4174", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/components/pg-cobranca-page.jsx:290"}, "properties": {"repobilityId": "ddc3599e61e50e3d", "scanner": "scanner-primary", "fingerprint": "4712f24bbd7f4174", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-39b631988f93ea1c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/components/pg-shared.jsx:277"}, "properties": {"repobilityId": "15e905b463fcb517", "scanner": "scanner-primary", "fingerprint": "39b631988f93ea1c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7690be1a380992b9", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto-cockpit/produto-cockpit-page.jsx:122"}, "properties": {"repobilityId": "3a429d01e358ca2d", "scanner": "scanner-primary", "fingerprint": "7690be1a380992b9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-6fef71145f09fb58", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/mockup-pages.jsx:18"}, "properties": {"repobilityId": "e7a1ef71464430c3", "scanner": "scanner-primary", "fingerprint": "6fef71145f09fb58", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d47e3d507b66bb35", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/producao-page.jsx:294"}, "properties": {"repobilityId": "3c7d473179fe8ec3", "scanner": "scanner-primary", "fingerprint": "d47e3d507b66bb35", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3d16d80051292a63", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-trouble-lib.jsx:146"}, "properties": {"repobilityId": "fce3c07474235092", "scanner": "scanner-primary", "fingerprint": "3d16d80051292a63", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-6d4fce6fa88ad06b", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-trouble-editor.jsx:74"}, "properties": {"repobilityId": "6b3cd9f7b2519de0", "scanner": "scanner-primary", "fingerprint": "6d4fce6fa88ad06b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-515f3a121697e919", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-page.jsx:346"}, "properties": {"repobilityId": "39e72b9b88382b5f", "scanner": "scanner-primary", "fingerprint": "515f3a121697e919", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-19c721d7f996f3fa", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-page.jsx:1208"}, "properties": {"repobilityId": "804612946bb5cb23", "scanner": "scanner-primary", "fingerprint": "19c721d7f996f3fa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-b91f92e383247281", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-page.jsx:1237"}, "properties": {"repobilityId": "c44d716daa01ca98", "scanner": "scanner-primary", "fingerprint": "b91f92e383247281", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8ee6275ff5e8027e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/financeiro-app.jsx:181"}, "properties": {"repobilityId": "81c86d614c532df1", "scanner": "scanner-primary", "fingerprint": "8ee6275ff5e8027e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a36e35c19b84b25f", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/mockup-bodies.js:4"}, "properties": {"repobilityId": "717814a5bbe91587", "scanner": "scanner-primary", "fingerprint": "a36e35c19b84b25f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-d1948cd764036c7f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/boleto-contas-app.jsx:359"}, "properties": {"repobilityId": "0c5b35e5ecc92cc1", "scanner": "scanner-primary", "fingerprint": "d1948cd764036c7f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ca9fe2aaba9f4f3f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/produto-app.jsx:96"}, "properties": {"repobilityId": "47c7c1b7f03c8417", "scanner": "scanner-primary", "fingerprint": "ca9fe2aaba9f4f3f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b472823c9e6e6db2", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-v2-extras.jsx:254"}, "properties": {"repobilityId": "4f96fcde5b3d7ff6", "scanner": "scanner-primary", "fingerprint": "b472823c9e6e6db2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-0da46f1782499e1a", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-images-print.jsx:170"}, "properties": {"repobilityId": "ec3913865cd4e29b", "scanner": "scanner-primary", "fingerprint": "0da46f1782499e1a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-0618f47db68d6f63", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-extras.jsx:482"}, "properties": {"repobilityId": "5d83021a0c6396d8", "scanner": "scanner-primary", "fingerprint": "0618f47db68d6f63", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-097187826df4beea", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-v2-ai.jsx:102"}, "properties": {"repobilityId": "07d1be71fa6e5c89", "scanner": "scanner-primary", "fingerprint": "097187826df4beea", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-20fbec6cf8b24849", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-v2-ai.jsx:112"}, "properties": {"repobilityId": "59aa3adcf2883170", "scanner": "scanner-primary", "fingerprint": "20fbec6cf8b24849", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-bb86f81be4ec0532", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-v2-cur.jsx:249"}, "properties": {"repobilityId": "16f55e4d123c38cd", "scanner": "scanner-primary", "fingerprint": "bb86f81be4ec0532", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-ecb13c4226ff6382", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-v2-out.jsx:124"}, "properties": {"repobilityId": "91006234fc27c012", "scanner": "scanner-primary", "fingerprint": "ecb13c4226ff6382", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-1f22a3b1a6a85df0", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/financeiro-telas-extras.jsx:271"}, "properties": {"repobilityId": "f75b9e47d2230465", "scanner": "scanner-primary", "fingerprint": "1f22a3b1a6a85df0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c963cd08a208ff9d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/financeiro-telas-extras.jsx:153"}, "properties": {"repobilityId": "0af3093147d1a039", "scanner": "scanner-primary", "fingerprint": "c963cd08a208ff9d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b864514c494eba8f", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-extras.jsx:128"}, "properties": {"repobilityId": "3376a2ae4dc9dfaf", "scanner": "scanner-primary", "fingerprint": "b864514c494eba8f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-9662df11d47fda70", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-extras.jsx:137"}, "properties": {"repobilityId": "ddef4e4e07589e55", "scanner": "scanner-primary", "fingerprint": "9662df11d47fda70", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-cf6105d5c074bfea", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/compras-page.jsx:218"}, "properties": {"repobilityId": "d89ef03670f75c79", "scanner": "scanner-primary", "fingerprint": "cf6105d5c074bfea", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c336010a8029d04f", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-paths.jsx:141"}, "properties": {"repobilityId": "33d4e1d71c3703b8", "scanner": "scanner-primary", "fingerprint": "c336010a8029d04f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-078d6d1030cf2f18", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/recurring/recurring-page.jsx:865"}, "properties": {"repobilityId": "97eb1ad147615786", "scanner": "scanner-primary", "fingerprint": "078d6d1030cf2f18", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-2082630873965c04", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-fluxo/page.tsx:156"}, "properties": {"repobilityId": "f8ff982babc45e83", "scanner": "scanner-primary", "fingerprint": "2082630873965c04", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-29a15a7645ca6273", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/producao-oficina/cowork-app.jsx:294"}, "properties": {"repobilityId": "40a9113e45e3d854", "scanner": "scanner-primary", "fingerprint": "29a15a7645ca6273", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a145d80a6a00e3bc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-conciliacao/page.tsx:112"}, "properties": {"repobilityId": "04a5a816dd5fe0c0", "scanner": "scanner-primary", "fingerprint": "a145d80a6a00e3bc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2b04788f99de37ad", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto/produto-app.jsx:96"}, "properties": {"repobilityId": "3acaf135d786fb6e", "scanner": "scanner-primary", "fingerprint": "2b04788f99de37ad", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0cab01d37dc44d2e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto/cowork-app.jsx:96"}, "properties": {"repobilityId": "354c6de1f402f5eb", "scanner": "scanner-primary", "fingerprint": "0cab01d37dc44d2e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d9146adfeed5d89b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto-unificado/produto-app.jsx:96"}, "properties": {"repobilityId": "13b95956b588806f", "scanner": "scanner-primary", "fingerprint": "d9146adfeed5d89b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-41cf09f6ec1b0478", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto-unificado/page.tsx:256"}, "properties": {"repobilityId": "c942a2fa970da9f3", "scanner": "scanner-primary", "fingerprint": "41cf09f6ec1b0478", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-751c1ff9c60d366a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto-unificado/page.tsx:350"}, "properties": {"repobilityId": "5b6ed51ff61e5815", "scanner": "scanner-primary", "fingerprint": "751c1ff9c60d366a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-cdf0a3fe41c3ad44", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/vendas-cockpit/cowork-extras.jsx:442"}, "properties": {"repobilityId": "63f38735ae778c5b", "scanner": "scanner-primary", "fingerprint": "cdf0a3fe41c3ad44", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c5fe5b43d1dbe8ca", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-trouble-lib.jsx:146"}, "properties": {"repobilityId": "d987755bc8d719d3", "scanner": "scanner-primary", "fingerprint": "c5fe5b43d1dbe8ca", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-7c35359dd4b4cda8", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-trouble-editor.jsx:74"}, "properties": {"repobilityId": "7d6ec99dd560f9d7", "scanner": "scanner-primary", "fingerprint": "7c35359dd4b4cda8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-e8ca5ba90b5bcecd", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-page.jsx:1208"}, "properties": {"repobilityId": "bac7aed889b2d18a", "scanner": "scanner-primary", "fingerprint": "e8ca5ba90b5bcecd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-9cd18c100b7e1ab3", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-page.jsx:1237"}, "properties": {"repobilityId": "07ded6e390a42000", "scanner": "scanner-primary", "fingerprint": "9cd18c100b7e1ab3", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c96bfc0dc281d907", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-images-print.jsx:170"}, "properties": {"repobilityId": "cfae9507b431f707", "scanner": "scanner-primary", "fingerprint": "c96bfc0dc281d907", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-933123f71ce1b4ab", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-extras.jsx:128"}, "properties": {"repobilityId": "6f3c0dcb33f93b72", "scanner": "scanner-primary", "fingerprint": "933123f71ce1b4ab", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-1d1b1b14af7d076f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-extras.jsx:137"}, "properties": {"repobilityId": "cc0ed85bfba9387d", "scanner": "scanner-primary", "fingerprint": "1d1b1b14af7d076f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d4c08d142f32abb5", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-paths.jsx:141"}, "properties": {"repobilityId": "7585f2fa0dc58798", "scanner": "scanner-primary", "fingerprint": "d4c08d142f32abb5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-fd4c493f9e3aec7f", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-create/vendas-extras.jsx:442"}, "properties": {"repobilityId": "0dc912c500b5d861", "scanner": "scanner-primary", "fingerprint": "fd4c493f9e3aec7f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-a746698099f8afd2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/mockup-pages.jsx:18"}, "properties": {"repobilityId": "0bca4c369526f6c3", "scanner": "scanner-primary", "fingerprint": "a746698099f8afd2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f3b49cc6f36ce686", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/producao-page.jsx:294"}, "properties": {"repobilityId": "bc79ceccefc3b62a", "scanner": "scanner-primary", "fingerprint": "f3b49cc6f36ce686", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d2ba65b8d420ecb4", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-trouble-lib.jsx:146"}, "properties": {"repobilityId": "5fbd922035c598c4", "scanner": "scanner-primary", "fingerprint": "d2ba65b8d420ecb4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-a5bb6d92e62f9860", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-trouble-editor.jsx:74"}, "properties": {"repobilityId": "dd6aea3fe38f0911", "scanner": "scanner-primary", "fingerprint": "a5bb6d92e62f9860", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-9fc106acaae3ae86", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-page.jsx:346"}, "properties": {"repobilityId": "51815a1232d4b626", "scanner": "scanner-primary", "fingerprint": "9fc106acaae3ae86", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-56449e7915cb8fc2", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-page.jsx:1208"}, "properties": {"repobilityId": "4364911fbbe106ec", "scanner": "scanner-primary", "fingerprint": "56449e7915cb8fc2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-2e8729d1dc0aaa2d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-page.jsx:1237"}, "properties": {"repobilityId": "1964715d76baa14a", "scanner": "scanner-primary", "fingerprint": "2e8729d1dc0aaa2d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f7a17ac37e5a5463", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/mockup-bodies.js:4"}, "properties": {"repobilityId": "7656d2d3742202d3", "scanner": "scanner-primary", "fingerprint": "f7a17ac37e5a5463", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-6697fb71e82f6de2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/boleto-contas-app.jsx:359"}, "properties": {"repobilityId": "a611825e966afca6", "scanner": "scanner-primary", "fingerprint": "6697fb71e82f6de2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b0e26137c4fdde9c", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-extras.jsx:254"}, "properties": {"repobilityId": "f4c2f792411db0a8", "scanner": "scanner-primary", "fingerprint": "b0e26137c4fdde9c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-d958bfec5d936021", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-images-print.jsx:170"}, "properties": {"repobilityId": "e8000f7ed3c0a581", "scanner": "scanner-primary", "fingerprint": "d958bfec5d936021", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-10a9d696a1d74647", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-extras.jsx:482"}, "properties": {"repobilityId": "fc08903d3cdbb94e", "scanner": "scanner-primary", "fingerprint": "10a9d696a1d74647", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-864f7fa02f8284e0", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-ai.jsx:102"}, "properties": {"repobilityId": "9f3ed1fb793e9ed3", "scanner": "scanner-primary", "fingerprint": "864f7fa02f8284e0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-4bacd8f47f6e3719", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-ai.jsx:112"}, "properties": {"repobilityId": "600a5dd1467c9b67", "scanner": "scanner-primary", "fingerprint": "4bacd8f47f6e3719", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9a09681aac1122ed", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-cur.jsx:249"}, "properties": {"repobilityId": "a97dc542b5610cc1", "scanner": "scanner-primary", "fingerprint": "9a09681aac1122ed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-34bf579208924fe6", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-out.jsx:124"}, "properties": {"repobilityId": "85d450316baf7e95", "scanner": "scanner-primary", "fingerprint": "34bf579208924fe6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-059883079fa383e8", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-extras.jsx:128"}, "properties": {"repobilityId": "04f3f8d0420b3e76", "scanner": "scanner-primary", "fingerprint": "059883079fa383e8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-8f4dd9c29deb4103", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-extras.jsx:137"}, "properties": {"repobilityId": "4faae4640526a596", "scanner": "scanner-primary", "fingerprint": "8f4dd9c29deb4103", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7eb5f211fa2be321", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/compras-page.jsx:218"}, "properties": {"repobilityId": "e082f82f171134f8", "scanner": "scanner-primary", "fingerprint": "7eb5f211fa2be321", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-6fac7c1f5a3b0d73", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-paths.jsx:141"}, "properties": {"repobilityId": "d3d420f728f44f17", "scanner": "scanner-primary", "fingerprint": "6fac7c1f5a3b0d73", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-4b8ce7812f0b8601", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/mockup-pages.jsx:18"}, "properties": {"repobilityId": "13da06d4a5d11090", "scanner": "scanner-primary", "fingerprint": "4b8ce7812f0b8601", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c994187d4b53422d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/producao-page.jsx:294"}, "properties": {"repobilityId": "42812a1ee63cfa79", "scanner": "scanner-primary", "fingerprint": "c994187d4b53422d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e083b45e292725be", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-trouble-lib.jsx:146"}, "properties": {"repobilityId": "e5e1d0e621f061fe", "scanner": "scanner-primary", "fingerprint": "e083b45e292725be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-48952f67a85526e9", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-trouble-editor.jsx:74"}, "properties": {"repobilityId": "9498720872775cf6", "scanner": "scanner-primary", "fingerprint": "48952f67a85526e9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-66b2dc7504f13014", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/vendas-page.jsx:346"}, "properties": {"repobilityId": "e46520ddf9866c03", "scanner": "scanner-primary", "fingerprint": "66b2dc7504f13014", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c3cd9bea844f5f8b", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-page.jsx:1208"}, "properties": {"repobilityId": "767539e8383bf726", "scanner": "scanner-primary", "fingerprint": "c3cd9bea844f5f8b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-09ccb3cf37e0bc95", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-page.jsx:1237"}, "properties": {"repobilityId": "5684c8b1846f9dec", "scanner": "scanner-primary", "fingerprint": "09ccb3cf37e0bc95", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-60fc12e318c4dadb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-app.jsx:196"}, "properties": {"repobilityId": "e63c0120973c9a73", "scanner": "scanner-primary", "fingerprint": "60fc12e318c4dadb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0e42b6bf28500fd5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-app.jsx:748"}, "properties": {"repobilityId": "bcf9c10e68653a9a", "scanner": "scanner-primary", "fingerprint": "0e42b6bf28500fd5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9909f84ce3e59f7b", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/mockup-bodies.js:4"}, "properties": {"repobilityId": "231b4a6d1c71a195", "scanner": "scanner-primary", "fingerprint": "9909f84ce3e59f7b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c1e58322b8fc9bc5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/boleto-contas-app.jsx:359"}, "properties": {"repobilityId": "c54571d60b031694", "scanner": "scanner-primary", "fingerprint": "c1e58322b8fc9bc5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-028203025b9a52b3", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-v2-extras.jsx:254"}, "properties": {"repobilityId": "2c22842e8c9a8dc8", "scanner": "scanner-primary", "fingerprint": "028203025b9a52b3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-f2a9a8949f177ff3", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-images-print.jsx:170"}, "properties": {"repobilityId": "dda9f5e18fe778fa", "scanner": "scanner-primary", "fingerprint": "f2a9a8949f177ff3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-a4a3f78c1af1ba60", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/vendas-extras.jsx:482"}, "properties": {"repobilityId": "4d9722c3245a5b78", "scanner": "scanner-primary", "fingerprint": "a4a3f78c1af1ba60", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-f59dbda1be40676e", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-v2-ai.jsx:102"}, "properties": {"repobilityId": "d226091a02c344d6", "scanner": "scanner-primary", "fingerprint": "f59dbda1be40676e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-bfae5a9a6a55b5ef", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-v2-ai.jsx:112"}, "properties": {"repobilityId": "807600913c5d877a", "scanner": "scanner-primary", "fingerprint": "bfae5a9a6a55b5ef", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a184911c4e20b881", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-v2-cur.jsx:249"}, "properties": {"repobilityId": "960eab9f1f5e2b69", "scanner": "scanner-primary", "fingerprint": "a184911c4e20b881", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-1df87a9ad5e47f16", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-v2-out.jsx:124"}, "properties": {"repobilityId": "b4b86884c68247ae", "scanner": "scanner-primary", "fingerprint": "1df87a9ad5e47f16", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-528a5975241f4539", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-telas-extras.jsx:300"}, "properties": {"repobilityId": "da1297240d1d5fce", "scanner": "scanner-primary", "fingerprint": "528a5975241f4539", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-4c93c91c4c1e989f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-telas-extras.jsx:180"}, "properties": {"repobilityId": "ea8b1d83aa5649bf", "scanner": "scanner-primary", "fingerprint": "4c93c91c4c1e989f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4472476ccc65ed36", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-extras.jsx:128"}, "properties": {"repobilityId": "72fca8ee5f5e142e", "scanner": "scanner-primary", "fingerprint": "4472476ccc65ed36", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-49ae4e88301e9520", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-extras.jsx:137"}, "properties": {"repobilityId": "157bfe426096a6b2", "scanner": "scanner-primary", "fingerprint": "49ae4e88301e9520", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-42a7a4f4915a23a6", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/compras-page.jsx:218"}, "properties": {"repobilityId": "5057279b501f8adf", "scanner": "scanner-primary", "fingerprint": "42a7a4f4915a23a6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-89a2caf677a3261c", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-paths.jsx:141"}, "properties": {"repobilityId": "3519b02288857634", "scanner": "scanner-primary", "fingerprint": "89a2caf677a3261c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-d61de1b93e5dfa3a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/shared/PageHeader.tsx:49"}, "properties": {"repobilityId": "207a3b8e99889fbf", "scanner": "scanner-primary", "fingerprint": "d61de1b93e5dfa3a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8fd0778471fd4707", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/shared/DataTable.tsx:214"}, "properties": {"repobilityId": "d8addf7acaaf39a3", "scanner": "scanner-primary", "fingerprint": "8fd0778471fd4707", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2cbdf53c1dab02f5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/shared/KpiCard.tsx:114"}, "properties": {"repobilityId": "e5a0a3896a9e0016", "scanner": "scanner-primary", "fingerprint": "2cbdf53c1dab02f5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d4879ef1cf38501a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/cockpit/Sidebar.tsx:76"}, "properties": {"repobilityId": "e5ea1b5039dede56", "scanner": "scanner-primary", "fingerprint": "d4879ef1cf38501a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d192e6063ba66058", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Layouts/AppShell.tsx:92"}, "properties": {"repobilityId": "4ccb76ae3e836390", "scanner": "scanner-primary", "fingerprint": "d192e6063ba66058", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e5d9ca7e125bd84d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/mockup-pages.jsx:18"}, "properties": {"repobilityId": "7311431c9f215687", "scanner": "scanner-primary", "fingerprint": "e5d9ca7e125bd84d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-97a880808a5fc7b4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/producao-page.jsx:294"}, "properties": {"repobilityId": "2c5ba973b77ddc0a", "scanner": "scanner-primary", "fingerprint": "97a880808a5fc7b4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9bf41dfd6fc17f2d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/financeiro-app.jsx:181"}, "properties": {"repobilityId": "ffd5ea240a0e9531", "scanner": "scanner-primary", "fingerprint": "9bf41dfd6fc17f2d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e6f5b59678642760", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/mockup-bodies.js:4"}, "properties": {"repobilityId": "87092df4abe1e366", "scanner": "scanner-primary", "fingerprint": "e6f5b59678642760", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-3898abafd2fd81f9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/boleto-contas-app.jsx:359"}, "properties": {"repobilityId": "fc00c5d5d6eca02a", "scanner": "scanner-primary", "fingerprint": "3898abafd2fd81f9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-55c1ca3fe7d2db8f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/produto-app.jsx:96"}, "properties": {"repobilityId": "7ca398fdb57de679", "scanner": "scanner-primary", "fingerprint": "55c1ca3fe7d2db8f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f9df8886027403ad", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/vendas-extras.jsx:442"}, "properties": {"repobilityId": "1ca05be60562960c", "scanner": "scanner-primary", "fingerprint": "f9df8886027403ad", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-9dcfaa3627f73f25", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/financeiro-telas-extras.jsx:271"}, "properties": {"repobilityId": "9e5b869e4dea5b16", "scanner": "scanner-primary", "fingerprint": "9dcfaa3627f73f25", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-d0ac4732b45ca7f2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/financeiro-telas-extras.jsx:153"}, "properties": {"repobilityId": "a57291bddd60b1ab", "scanner": "scanner-primary", "fingerprint": "d0ac4732b45ca7f2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-79ad37dc233c90ad", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/compras-page.jsx:218"}, "properties": {"repobilityId": "d6165dc3b8f296d2", "scanner": "scanner-primary", "fingerprint": "79ad37dc233c90ad", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-e682ebe1400f34d0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Components/shared/PageHead"}, "properties": {"repobilityId": "b64daab2b223437a", "scanner": "scanner-primary", "fingerprint": "e682ebe1400f34d0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9b810a6821008631", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Components/shared/DataTab"}, "properties": {"repobilityId": "fe170b6f7615f2d6", "scanner": "scanner-primary", "fingerprint": "9b810a6821008631", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-77e1e0f54fea3244", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Components/shared/KpiCard."}, "properties": {"repobilityId": "e4b0bd4f4bea02a2", "scanner": "scanner-primary", "fingerprint": "77e1e0f54fea3244", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5e6cce9c0a43fbdb", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Components/cockpit/Sidebar.tsx:76"}, "properties": {"repobilityId": "2921b13d00db8afb", "scanner": "scanner-primary", "fingerprint": "5e6cce9c0a43fbdb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d75288442855b9be", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Layouts/AppShell.tsx:92"}, "properties": {"repobilityId": "b2f3f1cf9ff4d33c", "scanner": "scanner-primary", "fingerprint": "d75288442855b9be", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-81763a6255848a26", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/resources/js/Pages/Financeiro/Fluxo/Index."}, "properties": {"repobilityId": "6df6f0f928531f5b", "scanner": "scanner-primary", "fingerprint": "81763a6255848a26", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cecf357f7b5cedbb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/In"}, "properties": {"repobilityId": "49b7011b3b7faf8f", "scanner": "scanner-primary", "fingerprint": "cecf357f7b5cedbb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0471b91923b074ca", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/resources/js/Pages/Financeiro/Conciliacao/"}, "properties": {"repobilityId": "be9398179bd3b920", "scanner": "scanner-primary", "fingerprint": "0471b91923b074ca", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4899c4c4ac1cb28a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/resources/js/Pages/Produto/Unificado/Index"}, "properties": {"repobilityId": "7592e407eb9e51d1", "scanner": "scanner-primary", "fingerprint": "4899c4c4ac1cb28a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-407facade9d30661", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/resources/js/Pages/Produto/Unificado/Index.tsx:350"}, "properties": {"repobilityId": "2ea28093f8d78764", "scanner": "scanner-primary", "fingerprint": "407facade9d30661", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-8308cf642969b4e5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/prototipos/produto/produto-app.jsx:96"}, "properties": {"repobilityId": "22a731d61d7c07f0", "scanner": "scanner-primary", "fingerprint": "8308cf642969b4e5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2d9b3354c32f4b4f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/producao-page.jsx:294"}, "properties": {"repobilityId": "8423f8dacfac3f59", "scanner": "scanner-primary", "fingerprint": "2d9b3354c32f4b4f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a0acc81d215b33c7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/financeiro-app.jsx:140"}, "properties": {"repobilityId": "ec309291f96b6717", "scanner": "scanner-primary", "fingerprint": "a0acc81d215b33c7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-764f7de52d07fd67", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/boleto-contas-app.jsx:333"}, "properties": {"repobilityId": "d21c3bc5eee367aa", "scanner": "scanner-primary", "fingerprint": "764f7de52d07fd67", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2bea683f3519e853", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/produto-app.jsx:96"}, "properties": {"repobilityId": "6ae0c0c988d3c276", "scanner": "scanner-primary", "fingerprint": "2bea683f3519e853", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-418f6c1c3bdd2786", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/vendas-extras.jsx:442"}, "properties": {"repobilityId": "5a74bb6d00376e5b", "scanner": "scanner-primary", "fingerprint": "418f6c1c3bdd2786", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-b33bb304429777dd", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/financeiro-telas-extras.jsx:269"}, "properties": {"repobilityId": "5603c2a7ca3dd13e", "scanner": "scanner-primary", "fingerprint": "b33bb304429777dd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-27f3729aa406c7f8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/financeiro-telas-extras.jsx:151"}, "properties": {"repobilityId": "1f0e0c4023b590c1", "scanner": "scanner-primary", "fingerprint": "27f3729aa406c7f8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a9cf8b1ae67c4ab4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/Fluxo/Index.tsx:156"}, "properties": {"repobilityId": "3483f0d17291db05", "scanner": "scanner-primary", "fingerprint": "a9cf8b1ae67c4ab4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-06514e5686824152", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/Index.tsx:180"}, "properties": {"repobilityId": "f00c564daf1710d6", "scanner": "scanner-primary", "fingerprint": "06514e5686824152", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ccbc1bc5f1625d6a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/Conciliacao/Index.tsx:112"}, "properties": {"repobilityId": "6eee453f6395fd21", "scanner": "scanner-primary", "fingerprint": "ccbc1bc5f1625d6a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-969a0599edb819b4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Produto/Unificado/Index.tsx:256"}, "properties": {"repobilityId": "9106a0cc36bc7bd1", "scanner": "scanner-primary", "fingerprint": "969a0599edb819b4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-afea61431d257078", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Produto/Unificado/Index.tsx:350"}, "properties": {"repobilityId": "329781f7381bd28c", "scanner": "scanner-primary", "fingerprint": "afea61431d257078", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-340685876024bbc2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/prototipos/produto/produto-app.jsx:96"}, "properties": {"repobilityId": "4878ccad1009bde1", "scanner": "scanner-primary", "fingerprint": "340685876024bbc2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-663b15c3735a4580", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/vendas-page.jsx:346"}, "properties": {"repobilityId": "bd5d2bc7daf57382", "scanner": "scanner-primary", "fingerprint": "663b15c3735a4580", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-63a850c9a1c15199", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-app.jsx:196"}, "properties": {"repobilityId": "513c466cf9e675fa", "scanner": "scanner-primary", "fingerprint": "63a850c9a1c15199", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2bcdf15c4ded33b6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-app.jsx:748"}, "properties": {"repobilityId": "f24f62a160a2be32", "scanner": "scanner-primary", "fingerprint": "2bcdf15c4ded33b6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-27b44065db1295b0", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/vendas-extras.jsx:482"}, "properties": {"repobilityId": "99ae81d98d811c67", "scanner": "scanner-primary", "fingerprint": "27b44065db1295b0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-22883fa75a2ad1ff", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-telas-extras.jsx:300"}, "properties": {"repobilityId": "914195a1ca7ed2b7", "scanner": "scanner-primary", "fingerprint": "22883fa75a2ad1ff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-6d76ebec8082bc5a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-telas-extras.jsx:180"}, "properties": {"repobilityId": "a5a56b4fdf3d45aa", "scanner": "scanner-primary", "fingerprint": "6d76ebec8082bc5a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a8bec42677b43284", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/Fluxo/Index.tsx:156"}, "properties": {"repobilityId": "23b59fb74e316008", "scanner": "scanner-primary", "fingerprint": "a8bec42677b43284", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2bd5ee453e1fa2fd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/Index.tsx:180"}, "properties": {"repobilityId": "b6a2ecb1a07a9fb9", "scanner": "scanner-primary", "fingerprint": "2bd5ee453e1fa2fd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-84267fc2e805c11a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/Conciliacao/Index.tsx:112"}, "properties": {"repobilityId": "fd5f28cdbbdccc3f", "scanner": "scanner-primary", "fingerprint": "84267fc2e805c11a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-225dcc9b39c5fa4d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Produto/Unificado/Index.tsx:256"}, "properties": {"repobilityId": "dec88d6e01e67aaf", "scanner": "scanner-primary", "fingerprint": "225dcc9b39c5fa4d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-210a9d0822ca30dd", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Produto/Unificado/Index.tsx:350"}, "properties": {"repobilityId": "dc492d57d463b23a", "scanner": "scanner-primary", "fingerprint": "210a9d0822ca30dd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-155287b2c15b1b39", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-refino-kb-9.75/vendas-page.jsx:346"}, "properties": {"repobilityId": "07b781eb3fcec67a", "scanner": "scanner-primary", "fingerprint": "155287b2c15b1b39", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9be8b9c13d94c657", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-refino-kb-9.75/vendas-extras.jsx:438"}, "properties": {"repobilityId": "6800a05695ece8f7", "scanner": "scanner-primary", "fingerprint": "9be8b9c13d94c657", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-670f0e7818035343", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/prototipos/produto/produto-app.jsx:96"}, "properties": {"repobilityId": "a7747a1d2b976a58", "scanner": "scanner-primary", "fingerprint": "670f0e7818035343", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f0eb5b52869acf4d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/mockup-pages.jsx:18"}, "properties": {"repobilityId": "2055f52650fe7c0d", "scanner": "scanner-primary", "fingerprint": "f0eb5b52869acf4d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c4231611d77656f5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/producao-page.jsx:294"}, "properties": {"repobilityId": "a71c1eee2376e240", "scanner": "scanner-primary", "fingerprint": "c4231611d77656f5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-443e518e0ee1d88f", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-trouble-lib.jsx:146"}, "properties": {"repobilityId": "5f4237f04c32fdcb", "scanner": "scanner-primary", "fingerprint": "443e518e0ee1d88f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c22560a12bd6b802", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-trouble-editor.jsx:74"}, "properties": {"repobilityId": "43736f43f2811736", "scanner": "scanner-primary", "fingerprint": "c22560a12bd6b802", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-274e4ae4537d7d59", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-page.jsx:1208"}, "properties": {"repobilityId": "b270113935809a65", "scanner": "scanner-primary", "fingerprint": "274e4ae4537d7d59", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-58b663521adbe3d0", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-page.jsx:1237"}, "properties": {"repobilityId": "746d7a45cc059725", "scanner": "scanner-primary", "fingerprint": "58b663521adbe3d0", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-4711173a55fc5f13", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/financeiro-app.jsx:181"}, "properties": {"repobilityId": "c0d303623e419b41", "scanner": "scanner-primary", "fingerprint": "4711173a55fc5f13", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-740564ad5d4badfd", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/mockup-bodies.js:4"}, "properties": {"repobilityId": "9331b0d6873ad990", "scanner": "scanner-primary", "fingerprint": "740564ad5d4badfd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-0ca0919a96bd35dd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/boleto-contas-app.jsx:359"}, "properties": {"repobilityId": "b0e55607e16fabb0", "scanner": "scanner-primary", "fingerprint": "0ca0919a96bd35dd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5284229510f3c3e7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/produto-app.jsx:96"}, "properties": {"repobilityId": "cdb7207dd0534ad9", "scanner": "scanner-primary", "fingerprint": "5284229510f3c3e7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0c6fc5641e4050b0", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-v2-extras.jsx:254"}, "properties": {"repobilityId": "1730552854f8ad9d", "scanner": "scanner-primary", "fingerprint": "0c6fc5641e4050b0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-5c58f58c69b9f085", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-images-print.jsx:170"}, "properties": {"repobilityId": "c85478b8f8dd870a", "scanner": "scanner-primary", "fingerprint": "5c58f58c69b9f085", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-bfaa818d610b4232", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vendas-extras.jsx:442"}, "properties": {"repobilityId": "d3edd9f0833ffc05", "scanner": "scanner-primary", "fingerprint": "bfaa818d610b4232", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-1fa4eba0c5058ee8", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-v2-ai.jsx:102"}, "properties": {"repobilityId": "b3721d3f740c42f1", "scanner": "scanner-primary", "fingerprint": "1fa4eba0c5058ee8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-314cf1011f097cb9", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-v2-ai.jsx:112"}, "properties": {"repobilityId": "4373ab5c0a6becce", "scanner": "scanner-primary", "fingerprint": "314cf1011f097cb9", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-be5dc4137d9dd634", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-v2-cur.jsx:249"}, "properties": {"repobilityId": "60572b160d5b5632", "scanner": "scanner-primary", "fingerprint": "be5dc4137d9dd634", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c0be986095b265b0", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-v2-out.jsx:124"}, "properties": {"repobilityId": "586f91343621f392", "scanner": "scanner-primary", "fingerprint": "c0be986095b265b0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-38b49acb9a9c4a38", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/financeiro-telas-extras.jsx:271"}, "properties": {"repobilityId": "c0849ea9402ae603", "scanner": "scanner-primary", "fingerprint": "38b49acb9a9c4a38", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-293f07680ff50533", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/financeiro-telas-extras.jsx:153"}, "properties": {"repobilityId": "20a1fb7a4df2cbc8", "scanner": "scanner-primary", "fingerprint": "293f07680ff50533", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7ac41baf56061424", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-extras.jsx:128"}, "properties": {"repobilityId": "f3b29dbe514e91e4", "scanner": "scanner-primary", "fingerprint": "7ac41baf56061424", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-180dd4f037368ab6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-extras.jsx:137"}, "properties": {"repobilityId": "4feba639465c48fe", "scanner": "scanner-primary", "fingerprint": "180dd4f037368ab6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0465b2f555a68ac2", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/compras-page.jsx:218"}, "properties": {"repobilityId": "c9bfd00170f63bd8", "scanner": "scanner-primary", "fingerprint": "0465b2f555a68ac2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-616ef24c4c32e703", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-paths.jsx:141"}, "properties": {"repobilityId": "c8146015622c6cf7", "scanner": "scanner-primary", "fingerprint": "616ef24c4c32e703", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-61d116bf4f25a6f8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/Fluxo/Index.tsx:156"}, "properties": {"repobilityId": "d84454c13451f58a", "scanner": "scanner-primary", "fingerprint": "61d116bf4f25a6f8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-297526a69e831aed", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/Index.tsx:180"}, "properties": {"repobilityId": "707a6955abe8ba38", "scanner": "scanner-primary", "fingerprint": "297526a69e831aed", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e6f2ffbc3cd0be8e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/Conciliacao/Index.tsx:112"}, "properties": {"repobilityId": "eb946aa4093bf6ff", "scanner": "scanner-primary", "fingerprint": "e6f2ffbc3cd0be8e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a76b4b2c533c9b2e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Produto/Unificado/Index.tsx:256"}, "properties": {"repobilityId": "5ed451906060f127", "scanner": "scanner-primary", "fingerprint": "a76b4b2c533c9b2e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9c28cc7d1b482f11", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Produto/Unificado/Index.tsx:350"}, "properties": {"repobilityId": "3e1ec1c6de299fcc", "scanner": "scanner-primary", "fingerprint": "9c28cc7d1b482f11", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-516811f9b40b17ff", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/prototipos/produto/produto-app.jsx:96"}, "properties": {"repobilityId": "9941ee311642ffcc", "scanner": "scanner-primary", "fingerprint": "516811f9b40b17ff", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8af61dc92cf50d35", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/mockup-pages.jsx:18"}, "properties": {"repobilityId": "877daf28b0cade9e", "scanner": "scanner-primary", "fingerprint": "8af61dc92cf50d35", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5ab439b7fedaec7b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/producao-page.jsx:294"}, "properties": {"repobilityId": "a2925372cecf85aa", "scanner": "scanner-primary", "fingerprint": "5ab439b7fedaec7b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1d0e51988218666a", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-trouble-lib.jsx:146"}, "properties": {"repobilityId": "27be5338af5f6de7", "scanner": "scanner-primary", "fingerprint": "1d0e51988218666a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-f3cd557525325efd", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-trouble-editor.jsx:74"}, "properties": {"repobilityId": "15bed27eab92e10f", "scanner": "scanner-primary", "fingerprint": "f3cd557525325efd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-2e171764ca7bc08a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-page.jsx:157"}, "properties": {"repobilityId": "98e4fe0eefe96a99", "scanner": "scanner-primary", "fingerprint": "2e171764ca7bc08a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8a239e649bfbe831", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-page.jsx:1208"}, "properties": {"repobilityId": "902157e11882b737", "scanner": "scanner-primary", "fingerprint": "8a239e649bfbe831", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-ee84608396069c4f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-page.jsx:1237"}, "properties": {"repobilityId": "214fe9bf6b2925de", "scanner": "scanner-primary", "fingerprint": "ee84608396069c4f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-562523fa71fce250", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-app.jsx:196"}, "properties": {"repobilityId": "f5b7b1e0ccca77d9", "scanner": "scanner-primary", "fingerprint": "562523fa71fce250", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d1634c584718ecbb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-app.jsx:748"}, "properties": {"repobilityId": "23a28af7ca3595d0", "scanner": "scanner-primary", "fingerprint": "d1634c584718ecbb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a4ec3cdf7de505d8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-sells-cobranca-preview.jsx:270"}, "properties": {"repobilityId": "2378530397a63a10", "scanner": "scanner-primary", "fingerprint": "a4ec3cdf7de505d8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a109fd9b3112c9a2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-payment-gateways-page.jsx:219"}, "properties": {"repobilityId": "542e649ceb5f8598", "scanner": "scanner-primary", "fingerprint": "a109fd9b3112c9a2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e73435485c689831", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/mockup-bodies.js:4"}, "properties": {"repobilityId": "30c2564cbc8f4a82", "scanner": "scanner-primary", "fingerprint": "e73435485c689831", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-975e0ce166038983", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/boleto-contas-app.jsx:359"}, "properties": {"repobilityId": "b7514b0b93b86053", "scanner": "scanner-primary", "fingerprint": "975e0ce166038983", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c637f613af747c87", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-cobranca-page.jsx:290"}, "properties": {"repobilityId": "5af1ac2c305da374", "scanner": "scanner-primary", "fingerprint": "c637f613af747c87", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-80a46e1ed28cc58b", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-extras.jsx:254"}, "properties": {"repobilityId": "ac00f23dfebc90ce", "scanner": "scanner-primary", "fingerprint": "80a46e1ed28cc58b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-bc1ef43198da850e", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-images-print.jsx:170"}, "properties": {"repobilityId": "1a88e536354e9524", "scanner": "scanner-primary", "fingerprint": "bc1ef43198da850e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c51402e006c27355", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-extras.jsx:538"}, "properties": {"repobilityId": "15b4f37588ced4cc", "scanner": "scanner-primary", "fingerprint": "c51402e006c27355", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-cf6d5bd719691dda", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-extras.jsx:285"}, "properties": {"repobilityId": "838f206e2a12e495", "scanner": "scanner-primary", "fingerprint": "cf6d5bd719691dda", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-db85e9805c499320", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-ai.jsx:102"}, "properties": {"repobilityId": "96c32ad991076342", "scanner": "scanner-primary", "fingerprint": "db85e9805c499320", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-a14fb103eb381652", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-ai.jsx:112"}, "properties": {"repobilityId": "98934a2a19ec594c", "scanner": "scanner-primary", "fingerprint": "a14fb103eb381652", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d83e2e105757ca39", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-cur.jsx:249"}, "properties": {"repobilityId": "351a7ce931e56c0e", "scanner": "scanner-primary", "fingerprint": "d83e2e105757ca39", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-61831e1771007bb7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-shared.jsx:277"}, "properties": {"repobilityId": "31a86189026c2b9d", "scanner": "scanner-primary", "fingerprint": "61831e1771007bb7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f8dc6d79926274d4", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-out.jsx:124"}, "properties": {"repobilityId": "d0007e810446cffb", "scanner": "scanner-primary", "fingerprint": "f8dc6d79926274d4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-82b464cb2c5c8c82", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-telas-extras.jsx:300"}, "properties": {"repobilityId": "cb76eb84587f0ec6", "scanner": "scanner-primary", "fingerprint": "82b464cb2c5c8c82", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-dabadbca47cb2e46", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-telas-extras.jsx:180"}, "properties": {"repobilityId": "d9721d98317974e6", "scanner": "scanner-primary", "fingerprint": "dabadbca47cb2e46", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-11691ba6213ad2fa", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-extras.jsx:128"}, "properties": {"repobilityId": "d4859fdf11f8d4a5", "scanner": "scanner-primary", "fingerprint": "11691ba6213ad2fa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-5be752f7f6503428", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-extras.jsx:137"}, "properties": {"repobilityId": "b71cf1cbcbd0f8f7", "scanner": "scanner-primary", "fingerprint": "5be752f7f6503428", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e34e36687f6e3cd6", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/compras-page.jsx:218"}, "properties": {"repobilityId": "bde910136b8229b6", "scanner": "scanner-primary", "fingerprint": "e34e36687f6e3cd6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-dbeb95e2c081e4d3", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-paths.jsx:141"}, "properties": {"repobilityId": "e7b5c9ccc56383a4", "scanner": "scanner-primary", "fingerprint": "dbeb95e2c081e4d3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-aa39706f9d2abd48", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-ui/cobranca-page.jsx:247"}, "properties": {"repobilityId": "585ff59a0dbf2344", "scanner": "scanner-primary", "fingerprint": "aa39706f9d2abd48", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d8840aade283086f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-ui/payment-gateways-page.jsx:174"}, "properties": {"repobilityId": "cdd834978790640c", "scanner": "scanner-primary", "fingerprint": "d8840aade283086f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9f18bee9388a5db7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-ui/sells-emitir-cobranca-modal.jsx:270"}, "properties": {"repobilityId": "7aaa1137b63b8232", "scanner": "scanner-primary", "fingerprint": "9f18bee9388a5db7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2596923341f1ec52", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-ui/shared.jsx:274"}, "properties": {"repobilityId": "b79c85e8c443d0f8", "scanner": "scanner-primary", "fingerprint": "2596923341f1ec52", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1fe71f65a412c493", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/prototipos/clientes/clientes-975.jsx:280"}, "properties": {"repobilityId": "7d0029ecfa52f2ab", "scanner": "scanner-primary", "fingerprint": "1fe71f65a412c493", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ce3a82b8517be0cf", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-cur.jsx:249"}, "properties": {"repobilityId": "cb55261f22577104", "scanner": "scanner-primary", "fingerprint": "ce3a82b8517be0cf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-a5ab338b9a53c33b", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-out.jsx:124"}, "properties": {"repobilityId": "81c2ab18942e42f8", "scanner": "scanner-primary", "fingerprint": "a5ab338b9a53c33b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-de2ee72940abccca", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-ai.jsx:102"}, "properties": {"repobilityId": "9ae760cc6013ac03", "scanner": "scanner-primary", "fingerprint": "de2ee72940abccca", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-ef9f3313dde06645", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-ai.jsx:112"}, "properties": {"repobilityId": "a673e4cbcc3c66c5", "scanner": "scanner-primary", "fingerprint": "ef9f3313dde06645", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-4cdc6bf5caba9db2", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 prototipo-ui/prototipos/caixa-unificada/inbox-extras.jsx:254"}, "properties": {"repobilityId": "188959e49b48e562", "scanner": "scanner-primary", "fingerprint": "4cdc6bf5caba9db2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-0109685827f0134d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/CommandPalette.tsx:197"}, "properties": {"repobilityId": "33a740e8f9cc9aa5", "scanner": "scanner-primary", "fingerprint": "0109685827f0134d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e5e8270642ca465b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/shared/PageHeaderModuleNav.tsx:96"}, "properties": {"repobilityId": "9cadb0408f732007", "scanner": "scanner-primary", "fingerprint": "e5e8270642ca465b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b74dbc95ff8cc094", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/shared/PageHeader.tsx:74"}, "properties": {"repobilityId": "a1df359a396cbff2", "scanner": "scanner-primary", "fingerprint": "b74dbc95ff8cc094", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-238d80c2f1124d29", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Components/shared/DataTable.tsx:214"}, "properties": {"repobilityId": "03960bc19c5b2bc5", "scanner": "scanner-primary", "fingerprint": "238d80c2f1124d29", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7cb5a6c59ce1c6be", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/shared/KpiCard.tsx:117"}, "properties": {"repobilityId": "8b33d40073cfaf60", "scanner": "scanner-primary", "fingerprint": "7cb5a6c59ce1c6be", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-df0aa424a3fc1bac", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/shared/VendaDerivadaCard.tsx:296"}, "properties": {"repobilityId": "22c2713a0328e9d7", "scanner": "scanner-primary", "fingerprint": "df0aa424a3fc1bac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5af48d7511d57273", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Components/cockpit/Sidebar.tsx:394"}, "properties": {"repobilityId": "2b9f191e6b06a086", "scanner": "scanner-primary", "fingerprint": "5af48d7511d57273", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0056824f72072ba1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Components/board/TaskCard.tsx:66"}, "properties": {"repobilityId": "600d33c402345af6", "scanner": "scanner-primary", "fingerprint": "0056824f72072ba1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9864d647746813b9", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 resources/js/Pages/governance/ModuleGrades/Index.tsx:258"}, "properties": {"repobilityId": "c2137a88272a32c7", "scanner": "scanner-primary", "fingerprint": "9864d647746813b9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-94bd7008e12e6a5b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/TransactionPayment/Index.tsx:293"}, "properties": {"repobilityId": "b17260000d986267", "scanner": "scanner-primary", "fingerprint": "94bd7008e12e6a5b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f9f985ec995ab49d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/TransactionPayment/Show.tsx:119"}, "properties": {"repobilityId": "82755646754ca6f4", "scanner": "scanner-primary", "fingerprint": "f9f985ec995ab49d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0fe13d3b6cab6d47", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Todo/Index.tsx:398"}, "properties": {"repobilityId": "38e66bd97467d59f", "scanner": "scanner-primary", "fingerprint": "0fe13d3b6cab6d47", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7bc4fd17da9d7593", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Todo/Show.tsx:250"}, "properties": {"repobilityId": "7215db6f20bb95fc", "scanner": "scanner-primary", "fingerprint": "7bc4fd17da9d7593", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-69012016b63a728d", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Essentials/Todo/Show.tsx:153"}, "properties": {"repobilityId": "1cec63b197564797", "scanner": "scanner-primary", "fingerprint": "69012016b63a728d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1c2ca529c83762b6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Todo/Show.tsx:327"}, "properties": {"repobilityId": "83ec8b86b2f250ef", "scanner": "scanner-primary", "fingerprint": "1c2ca529c83762b6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7693aa7c271ea233", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Knowledge/Index.tsx:121"}, "properties": {"repobilityId": "3403c872cc8ea2e0", "scanner": "scanner-primary", "fingerprint": "7693aa7c271ea233", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e2e8cb44b46dfef1", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Knowledge/Index.tsx:150"}, "properties": {"repobilityId": "656ebc473ada515f", "scanner": "scanner-primary", "fingerprint": "e2e8cb44b46dfef1", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-fddc1f72a02cd9f3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Knowledge/Show.tsx:89"}, "properties": {"repobilityId": "0a2103bd8022c484", "scanner": "scanner-primary", "fingerprint": "fddc1f72a02cd9f3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b6d96afdb3f8405e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Knowledge/Show.tsx:163"}, "properties": {"repobilityId": "c1e8c51ce29e5496", "scanner": "scanner-primary", "fingerprint": "b6d96afdb3f8405e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e437aa0d362bdc8e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Reminders/Index.tsx:161"}, "properties": {"repobilityId": "e8745f4f3006a920", "scanner": "scanner-primary", "fingerprint": "e437aa0d362bdc8e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d0f1f9c602ed60cd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Holidays/Index.tsx:262"}, "properties": {"repobilityId": "1ef9a5b79ce67665", "scanner": "scanner-primary", "fingerprint": "d0f1f9c602ed60cd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ac40786ade9ba867", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Essentials/Messages/Index.tsx:73"}, "properties": {"repobilityId": "369c50758043b898", "scanner": "scanner-primary", "fingerprint": "ac40786ade9ba867", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-8b2dee9ee8f84b8c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Essentials/Messages/Index.tsx:212"}, "properties": {"repobilityId": "4725bbe19e30029d", "scanner": "scanner-primary", "fingerprint": "8b2dee9ee8f84b8c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6908490e0b56788f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Essentials/Documents/Index.tsx:307"}, "properties": {"repobilityId": "b64c8e9dc740bebe", "scanner": "scanner-primary", "fingerprint": "6908490e0b56788f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d123f5d058cb26b9", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Essentials/Documents/Index.tsx:88"}, "properties": {"repobilityId": "9b2d17105165c874", "scanner": "scanner-primary", "fingerprint": "d123f5d058cb26b9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-83808a49a4411700", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Site/Page.tsx:69"}, "properties": {"repobilityId": "3ae1000915d004e8", "scanner": "scanner-primary", "fingerprint": "83808a49a4411700", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ec41b39808fcae12", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Site/BlogPost.tsx:80"}, "properties": {"repobilityId": "4b0db9426772dc13", "scanner": "scanner-primary", "fingerprint": "ec41b39808fcae12", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e6a44cd4564de4ab", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Home/Index.tsx:79"}, "properties": {"repobilityId": "944b0110736febc0", "scanner": "scanner-primary", "fingerprint": "e6a44cd4564de4ab", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9cb1e793721fdec2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Settings/PaymentGateways/Index.tsx:275"}, "properties": {"repobilityId": "885b9d3833c4d380", "scanner": "scanner-primary", "fingerprint": "9cb1e793721fdec2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6dfe7f8e318d7cae", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Settings/PaymentGateways/CnabRetorno.tsx:195"}, "properties": {"repobilityId": "39ef21f7bcb0c289", "scanner": "scanner-primary", "fingerprint": "6dfe7f8e318d7cae", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5b111fde8c457467", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Settings/PaymentGateways/_components/atoms-settings.tsx:76"}, "properties": {"repobilityId": "8d6ba86945a1ded4", "scanner": "scanner-primary", "fingerprint": "5b111fde8c457467", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a4b32658aa3d0d31", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Settings/PaymentGateways/_components/DrawerGateway.tsx:247"}, "properties": {"repobilityId": "0119ff77e2bb40d8", "scanner": "scanner-primary", "fingerprint": "a4b32658aa3d0d31", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f65b23052de1c313", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/MemCofre/Chat.tsx:199"}, "properties": {"repobilityId": "026e72a563395ed9", "scanner": "scanner-primary", "fingerprint": "f65b23052de1c313", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-808e7ec7f3162e2c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/MemCofre/Memoria.tsx:190"}, "properties": {"repobilityId": "c0704d40eb88fccf", "scanner": "scanner-primary", "fingerprint": "808e7ec7f3162e2c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-297eb97a2a1d3b2d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/MemCofre/Dashboard.tsx:334"}, "properties": {"repobilityId": "38c8a1855680f276", "scanner": "scanner-primary", "fingerprint": "297eb97a2a1d3b2d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-700fb16809c7035d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/MemCofre/Inbox.tsx:361"}, "properties": {"repobilityId": "4ee806ce37894fa0", "scanner": "scanner-primary", "fingerprint": "700fb16809c7035d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a8bd90da90ef8f28", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/ProjectMgmt/Backlog/Index.tsx:352"}, "properties": {"repobilityId": "a95e42fc14863ae1", "scanner": "scanner-primary", "fingerprint": "a8bd90da90ef8f28", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a5a96ab7e17f4faa", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:529"}, "properties": {"repobilityId": "ab72e46492f69893", "scanner": "scanner-primary", "fingerprint": "a5a96ab7e17f4faa", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a18bcaedaebfa486", "level": "note", "message": {"text": "React Flow <MiniMap> without dark background \u2014 resources/js/Pages/ads/Admin/Graph.tsx:206"}, "properties": {"repobilityId": "791b73a288aa4f06", "scanner": "scanner-primary", "fingerprint": "a18bcaedaebfa486", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.minimap.no-bg"]}}, {"ruleId": "scanner-90fbf0068a3d3a88", "level": "note", "message": {"text": "React Flow <Controls> without dark theming \u2014 resources/js/Pages/ads/Admin/Graph.tsx:205"}, "properties": {"repobilityId": "fa374d415aed0a79", "scanner": "scanner-primary", "fingerprint": "90fbf0068a3d3a88", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.controls.no-bg"]}}, {"ruleId": "scanner-6109c047d48e67e6", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 resources/js/Pages/ads/Admin/Graph.tsx:164"}, "properties": {"repobilityId": "83438d4f8b6c435b", "scanner": "scanner-primary", "fingerprint": "6109c047d48e67e6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-851f0f8f6538618f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/ads/Admin/Confidence.tsx:212"}, "properties": {"repobilityId": "5aa962df8f77073e", "scanner": "scanner-primary", "fingerprint": "851f0f8f6538618f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-308e52d994b2251c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/ads/Admin/Tools.tsx:109"}, "properties": {"repobilityId": "152ef90be912305b", "scanner": "scanner-primary", "fingerprint": "308e52d994b2251c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-56fbf87f80bc0f1d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/ContactPickerModal.tsx:169"}, "properties": {"repobilityId": "c40c98386ccc2034", "scanner": "scanner-primary", "fingerprint": "56fbf87f80bc0f1d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8c63c74c830df9f8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/ConversationThread.tsx:594"}, "properties": {"repobilityId": "f3f0e13ba6f03cc9", "scanner": "scanner-primary", "fingerprint": "8c63c74c830df9f8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-25ce26822be64e17", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/TemplatePicker.tsx:133"}, "properties": {"repobilityId": "c687314c911f8727", "scanner": "scanner-primary", "fingerprint": "25ce26822be64e17", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6cb7022ed7e6573e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/ConversationSidebar.tsx:245"}, "properties": {"repobilityId": "d901fcee5ba0bafb", "scanner": "scanner-primary", "fingerprint": "6cb7022ed7e6573e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-57110d16e6385fd7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/CustomerMemoryBlock.tsx:227"}, "properties": {"repobilityId": "f154ef3945f440e5", "scanner": "scanner-primary", "fingerprint": "57110d16e6385fd7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-db49a8f9b7a2a9cc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Whatsapp/_components/ConversationList.tsx:512"}, "properties": {"repobilityId": "219a77bc1f0c441f", "scanner": "scanner-primary", "fingerprint": "db49a8f9b7a2a9cc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e7ba665532f408b5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/ProvaViva.tsx:565"}, "properties": {"repobilityId": "36c04d2ee5e1eaa5", "scanner": "scanner-primary", "fingerprint": "e7ba665532f408b5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1381b376b963a715", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Dashboard/Index.tsx:228"}, "properties": {"repobilityId": "baea64ff56611a84", "scanner": "scanner-primary", "fingerprint": "1381b376b963a715", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5237fdbd0de35ee5", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Financeiro/Dashboard/Index.tsx:401"}, "properties": {"repobilityId": "fdc90f2b7f1ed582", "scanner": "scanner-primary", "fingerprint": "5237fdbd0de35ee5", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d05d4d400ed7a704", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/_cowork-bundle/financeiro-app.jsx:196"}, "properties": {"repobilityId": "838d699ace1a096d", "scanner": "scanner-primary", "fingerprint": "d05d4d400ed7a704", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-686c703f4a2fcd1c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/js/Pages/Financeiro/_cowork-bundle/financeiro-app.jsx:748"}, "properties": {"repobilityId": "88893d0f9e06b607", "scanner": "scanner-primary", "fingerprint": "686c703f4a2fcd1c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c4c3bab4f0e13572", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 resources/js/Pages/Financeiro/_cowork-bundle/financeiro-telas-extras.jsx:300"}, "properties": {"repobilityId": "4950042369c0c7d8", "scanner": "scanner-primary", "fingerprint": "c4c3bab4f0e13572", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c5a7a2f258a75a6d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/_cowork-bundle/financeiro-telas-extras.jsx:180"}, "properties": {"repobilityId": "88afc3526cbfdf64", "scanner": "scanner-primary", "fingerprint": "c5a7a2f258a75a6d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a6e6ac968d5b7bd3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Fluxo/Index.tsx:296"}, "properties": {"repobilityId": "58d771a377a1fb81", "scanner": "scanner-primary", "fingerprint": "a6e6ac968d5b7bd3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5f9f9e2d082f29d9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Cobranca/Index.tsx:376"}, "properties": {"repobilityId": "086f9f2c5d8a2361", "scanner": "scanner-primary", "fingerprint": "5f9f9e2d082f29d9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f82532fb9de4173b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Cobranca/_components/atoms.tsx:158"}, "properties": {"repobilityId": "157ef556f658e85b", "scanner": "scanner-primary", "fingerprint": "f82532fb9de4173b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-02bcb909fe5364d3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Cobranca/_components/DrawerCobranca.tsx:51"}, "properties": {"repobilityId": "3b1cf40e12f4fe99", "scanner": "scanner-primary", "fingerprint": "02bcb909fe5364d3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9fe9143d0a3ecb72", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Cobranca/_components/SheetRemessaRetorno.tsx:64"}, "properties": {"repobilityId": "5eea8d4154325d7f", "scanner": "scanner-primary", "fingerprint": "9fe9143d0a3ecb72", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1d0ba2fc9cd26fab", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Impostos/Index.tsx:128"}, "properties": {"repobilityId": "3f504b0293c9ba8d", "scanner": "scanner-primary", "fingerprint": "1d0ba2fc9cd26fab", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a056126fb91b5fd7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Advisor/Dashboard.tsx:61"}, "properties": {"repobilityId": "904c364ab4652db7", "scanner": "scanner-primary", "fingerprint": "a056126fb91b5fd7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-982dd405d30a478d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Unificado/Index.tsx:1064"}, "properties": {"repobilityId": "7b00946777120f25", "scanner": "scanner-primary", "fingerprint": "982dd405d30a478d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cd0c307f4a90b531", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Unificado/_components/ClienteCombobox.tsx:153"}, "properties": {"repobilityId": "eb1ad2ea9d9a319f", "scanner": "scanner-primary", "fingerprint": "cd0c307f4a90b531", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-856eedf4c8810d2b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Unificado/_components/PlanoContaCombobox.tsx:154"}, "properties": {"repobilityId": "feee57c535a4c4f7", "scanner": "scanner-primary", "fingerprint": "856eedf4c8810d2b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ea247ccd6f76eaf2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Financeiro/Conciliacao/Index.tsx:266"}, "properties": {"repobilityId": "a1e7d4a3aaf029c8", "scanner": "scanner-primary", "fingerprint": "ea247ccd6f76eaf2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7cf2633fb03fa83e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/RecurringBilling/Index.tsx:794"}, "properties": {"repobilityId": "7579f556d9260369", "scanner": "scanner-primary", "fingerprint": "7cf2633fb03fa83e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1b8e29e2da92295c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/RecurringBilling/Configuracoes/Index.tsx:512"}, "properties": {"repobilityId": "4370818ffa1824a9", "scanner": "scanner-primary", "fingerprint": "1b8e29e2da92295c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b13f2d7d80a4c4ce", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/RecurringBilling/Faturas/Index.tsx:646"}, "properties": {"repobilityId": "9d05e774cae28dac", "scanner": "scanner-primary", "fingerprint": "b13f2d7d80a4c4ce", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-33a43017868f5c90", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/RecurringBilling/_components/CmdPalette.tsx:126"}, "properties": {"repobilityId": "51d81f007c8f8ad0", "scanner": "scanner-primary", "fingerprint": "33a43017868f5c90", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0bad3a2082aa0e64", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/Index.tsx:1266"}, "properties": {"repobilityId": "412ce4cd6f53f64a", "scanner": "scanner-primary", "fingerprint": "0bad3a2082aa0e64", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f857cc76e1dd3c13", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Cliente/Index.tsx:2256"}, "properties": {"repobilityId": "e76ce5f107c3cbc2", "scanner": "scanner-primary", "fingerprint": "f857cc76e1dd3c13", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d3f67544a2190282", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/Map.tsx:112"}, "properties": {"repobilityId": "78f8e0eb60a52f2f", "scanner": "scanner-primary", "fingerprint": "d3f67544a2190282", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-37873848be52e5da", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/Show.tsx:388"}, "properties": {"repobilityId": "68f0014f2e8893a3", "scanner": "scanner-primary", "fingerprint": "37873848be52e5da", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-29c2a6716c5c1653", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_form/ClienteRail.tsx:57"}, "properties": {"repobilityId": "61758ada69faa7c6", "scanner": "scanner-primary", "fingerprint": "29c2a6716c5c1653", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-833c4d82862a9fca", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_show/ContactPicker.tsx:123"}, "properties": {"repobilityId": "06990b55875a91da", "scanner": "scanner-primary", "fingerprint": "833c4d82862a9fca", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0ffd9a02eabb0a02", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_show/DocumentsTab.tsx:333"}, "properties": {"repobilityId": "20682e375e7c94a6", "scanner": "scanner-primary", "fingerprint": "0ffd9a02eabb0a02", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e080633073ff564f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Cliente/_show/SalesTab.tsx:393"}, "properties": {"repobilityId": "95f33ae906e2c772", "scanner": "scanner-primary", "fingerprint": "e080633073ff564f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7834214fa995cf4f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_drawer/AuditoriaTab.tsx:192"}, "properties": {"repobilityId": "ae0cadfae4025d25", "scanner": "scanner-primary", "fingerprint": "7834214fa995cf4f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a2df7acc9f81e190", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:312"}, "properties": {"repobilityId": "c1eb292f78005c2b", "scanner": "scanner-primary", "fingerprint": "a2df7acc9f81e190", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5efafb79de2f3515", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Cliente/_components/KpiStripClickable.tsx:221"}, "properties": {"repobilityId": "02c1becfb7a91d11", "scanner": "scanner-primary", "fingerprint": "5efafb79de2f3515", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f6eb61ab57a01eed", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Repair/JobSheet/AddParts.tsx:195"}, "properties": {"repobilityId": "7994cef168d14299", "scanner": "scanner-primary", "fingerprint": "f6eb61ab57a01eed", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7a1009e3ac284c1a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/Index.tsx:309"}, "properties": {"repobilityId": "281345ed06e69768", "scanner": "scanner-primary", "fingerprint": "7a1009e3ac284c1a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-72f73462158b8449", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ComposerV4.tsx:580"}, "properties": {"repobilityId": "9e343580d47384e1", "scanner": "scanner-primary", "fingerprint": "72f73462158b8449", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-864ab07145b29ee1", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ComposerV4.tsx:19"}, "properties": {"repobilityId": "480a49bb3361d860", "scanner": "scanner-primary", "fingerprint": "864ab07145b29ee1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-a7c7e07f4c40b6f7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ChannelsDrawer.tsx:102"}, "properties": {"repobilityId": "ad456c461b8df992", "scanner": "scanner-primary", "fingerprint": "a7c7e07f4c40b6f7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4396a056ccd5fbe8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/QueuesSheet.tsx:144"}, "properties": {"repobilityId": "55639da8453c7766", "scanner": "scanner-primary", "fingerprint": "4396a056ccd5fbe8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3ab5f892f4998821", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ContextSidebarV4.tsx:203"}, "properties": {"repobilityId": "340e0e8ffb450194", "scanner": "scanner-primary", "fingerprint": "3ab5f892f4998821", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cff1401074a26b56", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ConversationListV4.tsx:459"}, "properties": {"repobilityId": "c3c9c7ca36ba77b1", "scanner": "scanner-primary", "fingerprint": "cff1401074a26b56", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-837076df16547d18", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ConversationThreadV4.tsx:138"}, "properties": {"repobilityId": "23cbef94e68c2336", "scanner": "scanner-primary", "fingerprint": "837076df16547d18", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4f7aa53079d49a96", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/NewConversationDialog.tsx:131"}, "properties": {"repobilityId": "470d018c09ec0564", "scanner": "scanner-primary", "fingerprint": "4f7aa53079d49a96", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3e242ad492fc04b5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/Channels/Index.tsx:523"}, "properties": {"repobilityId": "a3cf698714054fa4", "scanner": "scanner-primary", "fingerprint": "3e242ad492fc04b5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b89dec74f36242af", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Atendimento/Channels/Show.tsx:443"}, "properties": {"repobilityId": "d469434c9b822dd2", "scanner": "scanner-primary", "fingerprint": "b89dec74f36242af", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c465ac514d29d53d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/team-mcp/CcSessions/Index.tsx:345"}, "properties": {"repobilityId": "77d7d6b5b6e187df", "scanner": "scanner-primary", "fingerprint": "c465ac514d29d53d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6f5ef625052026b2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/team-mcp/CcSessions/Index.tsx:334"}, "properties": {"repobilityId": "41b76b34288d9b46", "scanner": "scanner-primary", "fingerprint": "6f5ef625052026b2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1f6ecb09145b87cc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/team-mcp/Tasks/Index.tsx:185"}, "properties": {"repobilityId": "8ec75af5d8b91397", "scanner": "scanner-primary", "fingerprint": "1f6ecb09145b87cc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e3583c981e7dc63d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviPhotoGrid.tsx:295"}, "properties": {"repobilityId": "e8608639041450a3", "scanner": "scanner-primary", "fingerprint": "e3583c981e7dc63d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e7258899adc1545c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/LaudoPhotoSection.tsx:270"}, "properties": {"repobilityId": "3bcf1ac5d6c5fc3d", "scanner": "scanner-primary", "fingerprint": "e7258899adc1545c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-553c5d71266e1828", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DragConfirmDialog.tsx:101"}, "properties": {"repobilityId": "ac253ace1f7aaa4a", "scanner": "scanner-primary", "fingerprint": "553c5d71266e1828", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-73c8b0e067236dc8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceOrderRichSheet.tsx:371"}, "properties": {"repobilityId": "7f8e369a2a17893f", "scanner": "scanner-primary", "fingerprint": "73c8b0e067236dc8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-16691e9ee0c6f0fc", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceOrderRichSheet.tsx:186"}, "properties": {"repobilityId": "bd3bfa22b53c931d", "scanner": "scanner-primary", "fingerprint": "16691e9ee0c6f0fc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-33f11fd9ccdff200", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviInlineEditor.tsx:590"}, "properties": {"repobilityId": "4000b17ee6bf35cf", "scanner": "scanner-primary", "fingerprint": "33f11fd9ccdff200", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f96384f715a7a5da", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx:468"}, "properties": {"repobilityId": "ab8f54ce2a8a4973", "scanner": "scanner-primary", "fingerprint": "f96384f715a7a5da", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e4f67fc58fd696e0", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx:752"}, "properties": {"repobilityId": "baf7b10a7597f5f8", "scanner": "scanner-primary", "fingerprint": "e4f67fc58fd696e0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-a003f545d8d84904", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderItemRow.tsx:83"}, "properties": {"repobilityId": "fd36457c5f6c3280", "scanner": "scanner-primary", "fingerprint": "a003f545d8d84904", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2ca5a8f921069c0a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/DviBudgetSection.tsx:118"}, "properties": {"repobilityId": "76bc5c73d5e799f8", "scanner": "scanner-primary", "fingerprint": "2ca5a8f921069c0a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-48992679df75e3b7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/ServiceOrderKanbanCard.tsx:252"}, "properties": {"repobilityId": "c13752aea394a593", "scanner": "scanner-primary", "fingerprint": "48992679df75e3b7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-420410115c7e7bd8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/BoardKpiCard.tsx:31"}, "properties": {"repobilityId": "ad16b445641668ce", "scanner": "scanner-primary", "fingerprint": "420410115c7e7bd8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1ed6b84bf11a4b15", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/ServiceOrderKanbanColumn.tsx:65"}, "properties": {"repobilityId": "45a3f3aa11216776", "scanner": "scanner-primary", "fingerprint": "1ed6b84bf11a4b15", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0ebd984aaa671410", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/Index.tsx:394"}, "properties": {"repobilityId": "1f51aa6cee85ba90", "scanner": "scanner-primary", "fingerprint": "0ebd984aaa671410", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0a8cd3b50af1bbd7", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 resources/js/Pages/Produto/Index.tsx:372"}, "properties": {"repobilityId": "b2b4b8e5531071b1", "scanner": "scanner-primary", "fingerprint": "0a8cd3b50af1bbd7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-e68cc107cfde8bd3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/SellingPrices.tsx:341"}, "properties": {"repobilityId": "095d8a5d6faea01e", "scanner": "scanner-primary", "fingerprint": "e68cc107cfde8bd3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d9c2ef75f5aa4076", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/Edit.tsx:140"}, "properties": {"repobilityId": "5bb5594e93f858cf", "scanner": "scanner-primary", "fingerprint": "d9c2ef75f5aa4076", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f9a19c9c94e26549", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/BulkEdit.tsx:224"}, "properties": {"repobilityId": "727787a091b52e38", "scanner": "scanner-primary", "fingerprint": "f9a19c9c94e26549", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0b3fedaed473e726", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/Show.tsx:80"}, "properties": {"repobilityId": "bdd9a35f939ef34e", "scanner": "scanner-primary", "fingerprint": "0b3fedaed473e726", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b8018b89ffaf8a42", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Produto/Unificado/Index.tsx:292"}, "properties": {"repobilityId": "d884eb7710a998a4", "scanner": "scanner-primary", "fingerprint": "b8018b89ffaf8a42", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-22fed1d3f59099bb", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Auditoria/Index.tsx:203"}, "properties": {"repobilityId": "cfa0636a8af506bd", "scanner": "scanner-primary", "fingerprint": "22fed1d3f59099bb", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b35795281fd89259", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Nfse/Index.tsx:165"}, "properties": {"repobilityId": "6235050ef0dcf334", "scanner": "scanner-primary", "fingerprint": "b35795281fd89259", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3ffb82ff7a6aa1a3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Nfse/Emitir.tsx:357"}, "properties": {"repobilityId": "e13f45266e2717f5", "scanner": "scanner-primary", "fingerprint": "3ffb82ff7a6aa1a3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a9df70dc117d3f01", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Nfse/Show.tsx:262"}, "properties": {"repobilityId": "e1a377b7cb28b5c1", "scanner": "scanner-primary", "fingerprint": "a9df70dc117d3f01", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dd2b868601270015", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/GovernanceV4Dashboard.tsx:140"}, "properties": {"repobilityId": "a2672aa41f160474", "scanner": "scanner-primary", "fingerprint": "dd2b868601270015", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-92dc5ae6c876efdd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/ScreenReviewDashboard.tsx:226"}, "properties": {"repobilityId": "1f00ed849ab9355c", "scanner": "scanner-primary", "fingerprint": "92dc5ae6c876efdd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-838a8fc1c6b9b371", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/CommandPaletteV4.tsx:182"}, "properties": {"repobilityId": "0dfa2ac078279f57", "scanner": "scanner-primary", "fingerprint": "838a8fc1c6b9b371", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bcac275c6a22600b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/BucketSidebar.tsx:110"}, "properties": {"repobilityId": "bc15f17374442236", "scanner": "scanner-primary", "fingerprint": "bcac275c6a22600b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bf617e01874b726f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ModuleList.tsx:112"}, "properties": {"repobilityId": "791636cc1ae4bfa1", "scanner": "scanner-primary", "fingerprint": "bf617e01874b726f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3e3b97f4e1db5b4c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ScreenList.tsx:105"}, "properties": {"repobilityId": "b6115ceaad595829", "scanner": "scanner-primary", "fingerprint": "3e3b97f4e1db5b4c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bb3db145fa3f7a6f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ScreenReviewSidebar.tsx:108"}, "properties": {"repobilityId": "ea3f3936513b1e2a", "scanner": "scanner-primary", "fingerprint": "bb3db145fa3f7a6f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4097df0aa75cf81b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/AiSuggestionPanel.tsx:81"}, "properties": {"repobilityId": "e9b9c2006a5402dc", "scanner": "scanner-primary", "fingerprint": "4097df0aa75cf81b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dc8420e170a5c9cc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ModuleReader.tsx:106"}, "properties": {"repobilityId": "c6843de19cf09973", "scanner": "scanner-primary", "fingerprint": "dc8420e170a5c9cc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b7201f1996880bf3", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 resources/js/Pages/Admin/_components/WidgetMutations.tsx:162"}, "properties": {"repobilityId": "469cab3a4d34adfe", "scanner": "scanner-primary", "fingerprint": "b7201f1996880bf3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-e1b6ffce4a24ae63", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Admin/_components/ReviewReader.tsx:88"}, "properties": {"repobilityId": "74356757a6671ce9", "scanner": "scanner-primary", "fingerprint": "e1b6ffce4a24ae63", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c9c9bb3bf96fcf14", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/NfeBrasil/Transactions/NfceStatus.tsx:213"}, "properties": {"repobilityId": "40eb88c8f8fab31b", "scanner": "scanner-primary", "fingerprint": "c9c9bb3bf96fcf14", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-cab0a09d392f08f4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/NfeBrasil/Manifestacao/_components/LinkedItens.tsx:52"}, "properties": {"repobilityId": "ca8bbd174ed4da4f", "scanner": "scanner-primary", "fingerprint": "cab0a09d392f08f4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b94d4ee5f52e6b66", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Jana/Pro.tsx:100"}, "properties": {"repobilityId": "8eb4454dde7cd3cc", "scanner": "scanner-primary", "fingerprint": "b94d4ee5f52e6b66", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e51a487e72d60c46", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Jana/Cockpit.tsx:433"}, "properties": {"repobilityId": "5f4b8019e7681987", "scanner": "scanner-primary", "fingerprint": "e51a487e72d60c46", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d85ab0de19622a44", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Jana/Cockpit.tsx:16"}, "properties": {"repobilityId": "985aa9e6f06fe871", "scanner": "scanner-primary", "fingerprint": "d85ab0de19622a44", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-bf731c69542b5f64", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Sells/_components/CustomerSearchAutocomplete.tsx:314"}, "properties": {"repobilityId": "843131632eeaa04c", "scanner": "scanner-primary", "fingerprint": "bf731c69542b5f64", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-535dbf437210a4c8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Sells/_components/CobrancaDrawer.tsx:129"}, "properties": {"repobilityId": "86da083781d39b75", "scanner": "scanner-primary", "fingerprint": "535dbf437210a4c8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e71376f400a3029a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Sells/_components/ProductLineCard.tsx:91"}, "properties": {"repobilityId": "ddd2d8cf625ccd57", "scanner": "scanner-primary", "fingerprint": "e71376f400a3029a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-729ba4c349166df4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:677"}, "properties": {"repobilityId": "40b2f562b62aec82", "scanner": "scanner-primary", "fingerprint": "729ba4c349166df4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a48b68ba4f9e0e7d", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:26"}, "properties": {"repobilityId": "9f296839cdeb25f9", "scanner": "scanner-primary", "fingerprint": "a48b68ba4f9e0e7d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-144d906dc7939ea9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Compras/components/AcoesDropdown.tsx:222"}, "properties": {"repobilityId": "ae6dcbbbff077610", "scanner": "scanner-primary", "fingerprint": "144d906dc7939ea9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4600e9200f777f9e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Compras/components/VisibilidadeColunas.tsx:78"}, "properties": {"repobilityId": "a702590bb7f35b25", "scanner": "scanner-primary", "fingerprint": "4600e9200f777f9e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-92897b8a5dca1037", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/Index.tsx:433"}, "properties": {"repobilityId": "e0a5d78b0b60d10d", "scanner": "scanner-primary", "fingerprint": "92897b8a5dca1037", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f90483461efb722b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/kb/Index.tsx:421"}, "properties": {"repobilityId": "7a1e1fbe651a31e2", "scanner": "scanner-primary", "fingerprint": "f90483461efb722b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ab6cc47bf0fc2c4b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/kb/Graph.tsx:85"}, "properties": {"repobilityId": "6fec05c03c726fad", "scanner": "scanner-primary", "fingerprint": "ab6cc47bf0fc2c4b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-8e919b023ccb31fe", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/kb/Index.v2.tsx:75"}, "properties": {"repobilityId": "da57e9cc5463968c", "scanner": "scanner-primary", "fingerprint": "8e919b023ccb31fe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-30bc28322cc1af2e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/kb/_lib/graphLayout.ts:214"}, "properties": {"repobilityId": "3a72e70c4914d07e", "scanner": "scanner-primary", "fingerprint": "30bc28322cc1af2e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-ccb11c08dbb968bf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/GraphNodeDetail.tsx:84"}, "properties": {"repobilityId": "3615fc333a76a38e", "scanner": "scanner-primary", "fingerprint": "ccb11c08dbb968bf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9bedd5388beaea77", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/HealthPanel.tsx:161"}, "properties": {"repobilityId": "3d147c93e272253a", "scanner": "scanner-primary", "fingerprint": "9bedd5388beaea77", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b169f06e0c0fad63", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/NodeList.tsx:76"}, "properties": {"repobilityId": "77c6230d9be75cfc", "scanner": "scanner-primary", "fingerprint": "b169f06e0c0fad63", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-07a5635570ca1c47", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/KbCommandPalette.tsx:125"}, "properties": {"repobilityId": "29494299b93f9630", "scanner": "scanner-primary", "fingerprint": "07a5635570ca1c47", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fed4a7d68faceea7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/kb/_components/CategorySidebar.tsx:147"}, "properties": {"repobilityId": "1405eec287253a06", "scanner": "scanner-primary", "fingerprint": "fed4a7d68faceea7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-48e5af7a2db96db2", "level": "note", "message": {"text": "React Flow <Controls> without dark theming \u2014 resources/js/Pages/kb/_components/GraphCanvas.tsx:99"}, "properties": {"repobilityId": "4cf31b1b65f01ded", "scanner": "scanner-primary", "fingerprint": "48e5af7a2db96db2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.controls.no-bg"]}}, {"ruleId": "scanner-ac04b3203dac7463", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Ponto/Dashboard/Index.tsx:309"}, "properties": {"repobilityId": "34546de0ba170900", "scanner": "scanner-primary", "fingerprint": "ac04b3203dac7463", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a18af0a178508902", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Ponto/Configuracoes/Reps.tsx:48"}, "properties": {"repobilityId": "4b79b81f6db364b0", "scanner": "scanner-primary", "fingerprint": "a18af0a178508902", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4115ebccce7822f6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Colaboradores/Index.tsx:179"}, "properties": {"repobilityId": "041fa6fc503eabaa", "scanner": "scanner-primary", "fingerprint": "4115ebccce7822f6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9724906240682ac6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Importacoes/Index.tsx:152"}, "properties": {"repobilityId": "cafde27044a45c2b", "scanner": "scanner-primary", "fingerprint": "9724906240682ac6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-11add3d13f87415b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Escalas/Index.tsx:133"}, "properties": {"repobilityId": "bf273fd5df5e5877", "scanner": "scanner-primary", "fingerprint": "11add3d13f87415b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5a8dc1a71a2b73aa", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Aprovacoes/Index.tsx:466"}, "properties": {"repobilityId": "d3f8dd41edfc52c4", "scanner": "scanner-primary", "fingerprint": "5a8dc1a71a2b73aa", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d40df4744fb8dfd6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Intercorrencias/Index.tsx:226"}, "properties": {"repobilityId": "74c1ba611dbdcb5f", "scanner": "scanner-primary", "fingerprint": "d40df4744fb8dfd6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9251e4eab48b7f2d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/BancoHoras/Index.tsx:156"}, "properties": {"repobilityId": "f32c57cf75809c4d", "scanner": "scanner-primary", "fingerprint": "9251e4eab48b7f2d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8827d2f2e5870a85", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/js/Pages/Ponto/BancoHoras/Show.tsx:64"}, "properties": {"repobilityId": "8cce943aefe80546", "scanner": "scanner-primary", "fingerprint": "8827d2f2e5870a85", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-aa5b2c3c634b070d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 resources/js/Pages/Ponto/Espelho/Index.tsx:140"}, "properties": {"repobilityId": "a596fe6f0e23591e", "scanner": "scanner-primary", "fingerprint": "aa5b2c3c634b070d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ef31c18e215c6606", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Ponto/_components/ActivityFeed.tsx:117"}, "properties": {"repobilityId": "5bd2708026e83591", "scanner": "scanner-primary", "fingerprint": "ef31c18e215c6606", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8454fc79d78f8970", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 resources/js/Pages/Ponto/_components/AlertInbox.tsx:106"}, "properties": {"repobilityId": "a3d1435a7b8775f0", "scanner": "scanner-primary", "fingerprint": "8454fc79d78f8970", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6ce131abf4ce88df", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/js/AdminLTE-app.js:690"}, "properties": {"repobilityId": "e4d078b7a1fa4d42", "scanner": "scanner-primary", "fingerprint": "6ce131abf4ce88df", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41b670d8903d0c21", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/js/pages/dashboard.js:204"}, "properties": {"repobilityId": "8a3ca8285eb5010a", "scanner": "scanner-primary", "fingerprint": "41b670d8903d0c21", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eaed9341bc3c2216", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js:2"}, "properties": {"repobilityId": "d65caef159b75fbd", "scanner": "scanner-primary", "fingerprint": "eaed9341bc3c2216", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ecd644a5f18a3c78", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js:1"}, "properties": {"repobilityId": "51d4c6f229e2ae5b", "scanner": "scanner-primary", "fingerprint": "ecd644a5f18a3c78", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1f26dcc50574d2dd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js:182"}, "properties": {"repobilityId": "842ab3925b821cd0", "scanner": "scanner-primary", "fingerprint": "1f26dcc50574d2dd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ec7c93e02a74ab5b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/fullcalendar/fullcalendar.js:208"}, "properties": {"repobilityId": "475dcde01e7a64b8", "scanner": "scanner-primary", "fingerprint": "ec7c93e02a74ab5b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-18160038daf07c95", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/DataTables/JSZip-2.5.0/jszip.js:6190"}, "properties": {"repobilityId": "9cc699afaa58377f", "scanner": "scanner-primary", "fingerprint": "18160038daf07c95", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b0e5978ed9265e32", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/JSZip-2.5.0/jszip.js:2915"}, "properties": {"repobilityId": "97a64287420d4543", "scanner": "scanner-primary", "fingerprint": "b0e5978ed9265e32", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4f7f9142662cee88", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables.min.js:74"}, "properties": {"repobilityId": "88581e4509f99967", "scanner": "scanner-primary", "fingerprint": "4f7f9142662cee88", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a88b23a87291777a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables.js:6469"}, "properties": {"repobilityId": "98a74fbe812e3385", "scanner": "scanner-primary", "fingerprint": "a88b23a87291777a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-17763905b5d2c3c2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.min.js:5"}, "properties": {"repobilityId": "dde516cf3f073f43", "scanner": "scanner-primary", "fingerprint": "17763905b5d2c3c2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fe42d88d5e4c74cd", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.js:1236"}, "properties": {"repobilityId": "32d7441f13b70985", "scanner": "scanner-primary", "fingerprint": "fe42d88d5e4c74cd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-c7f47bff5f34a27e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.js:94"}, "properties": {"repobilityId": "817d86d49746a78a", "scanner": "scanner-primary", "fingerprint": "c7f47bff5f34a27e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0f8bacbf6e25a4a2", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.html5.js:1043"}, "properties": {"repobilityId": "32c8c5d74e7ade45", "scanner": "scanner-primary", "fingerprint": "0f8bacbf6e25a4a2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d44eee3a657ba5ba", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.js:425"}, "properties": {"repobilityId": "2f34cad051876fe0", "scanner": "scanner-primary", "fingerprint": "d44eee3a657ba5ba", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-a40f42d35660dc36", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.regex.extensions.js:126"}, "properties": {"repobilityId": "3a43b177dd7b31d4", "scanner": "scanner-primary", "fingerprint": "a40f42d35660dc36", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a89235753a9931be", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.phone.extensions.js:14"}, "properties": {"repobilityId": "c624def64215eaf3", "scanner": "scanner-primary", "fingerprint": "a89235753a9931be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-24ec5087a37ebfbc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.js:327"}, "properties": {"repobilityId": "4f7e3ad828f25021", "scanner": "scanner-primary", "fingerprint": "24ec5087a37ebfbc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0886909469b6c151", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.numeric.extensions.js:27"}, "properties": {"repobilityId": "95a9043b6116e576", "scanner": "scanner-primary", "fingerprint": "0886909469b6c151", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-85bbcf28833f7a50", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jKanban/jKanbanBoard.js:431"}, "properties": {"repobilityId": "fec631dd12c8868f", "scanner": "scanner-primary", "fingerprint": "85bbcf28833f7a50", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-fdfd21ed21ca6c4a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/bootstrap/js/bootstrap.js:1576"}, "properties": {"repobilityId": "b2826472b92dd702", "scanner": "scanner-primary", "fingerprint": "fdfd21ed21ca6c4a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-a0ff20c57ab6fbc2", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/fullcalendar/fullcalendar.js:913"}, "properties": {"repobilityId": "2cf536cb23be6aca", "scanner": "scanner-primary", "fingerprint": "a0ff20c57ab6fbc2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-adedd95490922305", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/bootstrap-tour/bootstrap-tour.min.js:22"}, "properties": {"repobilityId": "c46397df8b211762", "scanner": "scanner-primary", "fingerprint": "adedd95490922305", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-328dad0bb254e21b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/bootstrap-fileinput/fileinput.min.js:10"}, "properties": {"repobilityId": "d3c247a70dda3a13", "scanner": "scanner-primary", "fingerprint": "328dad0bb254e21b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d324b9ce1fe03846", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/test/test.js:841"}, "properties": {"repobilityId": "d4c595272f3fb247", "scanner": "scanner-primary", "fingerprint": "d324b9ce1fe03846", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-6510848cee95b223", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.mockjax-1.5.3.js:216"}, "properties": {"repobilityId": "6703cc9512e8e059", "scanner": "scanner-primary", "fingerprint": "6510848cee95b223", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e3e53fe02c5364db", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.mockjax-1.5.3.js:546"}, "properties": {"repobilityId": "b73623505fe3d233", "scanner": "scanner-primary", "fingerprint": "e3e53fe02c5364db", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-840a5e2b25aa8e17", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.mockjax-2.2.1.js:349"}, "properties": {"repobilityId": "bd328b458857423b", "scanner": "scanner-primary", "fingerprint": "840a5e2b25aa8e17", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-624f0e6c177fc445", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:3157"}, "properties": {"repobilityId": "ef3f59cc9edecb39", "scanner": "scanner-primary", "fingerprint": "624f0e6c177fc445", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-406031643aa7bef8", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.form.js:193"}, "properties": {"repobilityId": "9365d1d1033d5c32", "scanner": "scanner-primary", "fingerprint": "406031643aa7bef8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-52bd98f24154c094", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery.form.js:1114"}, "properties": {"repobilityId": "74aa7a6e6352bca5", "scanner": "scanner-primary", "fingerprint": "52bd98f24154c094", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d558482c4eeaaa0b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:2889"}, "properties": {"repobilityId": "27bbdc72e490415d", "scanner": "scanner-primary", "fingerprint": "d558482c4eeaaa0b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d3c55e6662422f94", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js:798"}, "properties": {"repobilityId": "6d0af3db541bfa58", "scanner": "scanner-primary", "fingerprint": "d3c55e6662422f94", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5cfc5f609c6b1587", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/src/core.js:1428"}, "properties": {"repobilityId": "d610c0f35dca9c06", "scanner": "scanner-primary", "fingerprint": "5cfc5f609c6b1587", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e084fa5b6294486c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/jquery-validation-1.16.0/src/core.js:762"}, "properties": {"repobilityId": "011441d7571b90a7", "scanner": "scanner-primary", "fingerprint": "e084fa5b6294486c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d46c09f98b59862b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery-validation-1.16.0/src/additional/strippedminlength.js:1"}, "properties": {"repobilityId": "66a0bf6040c0c681", "scanner": "scanner-primary", "fingerprint": "d46c09f98b59862b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-021473282641e58a", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 resources/plugins/jquery-ui/jquery-ui.min.js:9"}, "properties": {"repobilityId": "ebaad10644dec904", "scanner": "scanner-primary", "fingerprint": "021473282641e58a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-3003007298b3358f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 resources/plugins/jquery.steps/jquery.steps.js:600"}, "properties": {"repobilityId": "5c22dd625846f391", "scanner": "scanner-primary", "fingerprint": "3003007298b3358f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e48cbefc9687b56e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 resources/plugins/toastr/toastr.min.js:6"}, "properties": {"repobilityId": "6ee801d3fcc7001b", "scanner": "scanner-primary", "fingerprint": "e48cbefc9687b56e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fd7f71395c204ac5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-dxt.js:284"}, "properties": {"repobilityId": "be168fcd6efa7614", "scanner": "scanner-primary", "fingerprint": "fd7f71395c204ac5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ebccfe70c4070aee", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cc-watcher/index.js:281"}, "properties": {"repobilityId": "32558d37388e983d", "scanner": "scanner-primary", "fingerprint": "ebccfe70c4070aee", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-503a347d1733eb03", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/brain-a-daemon.js:50"}, "properties": {"repobilityId": "e067648716dd9376", "scanner": "scanner-primary", "fingerprint": "503a347d1733eb03", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fdf9d8a208cd9820", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/smoke-e2e.js:24"}, "properties": {"repobilityId": "247071917a97edb9", "scanner": "scanner-primary", "fingerprint": "fdf9d8a208cd9820", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5dfc05c58a20f609", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/smoke-watchers.js:16"}, "properties": {"repobilityId": "268c51de95d979e8", "scanner": "scanner-primary", "fingerprint": "5dfc05c58a20f609", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-87d0be7f29cad3ae", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/smoke-test.js:24"}, "properties": {"repobilityId": "97d932154b4f2030", "scanner": "scanner-primary", "fingerprint": "87d0be7f29cad3ae", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e3f316b04f61c57e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/watchers/git-watcher.js:24"}, "properties": {"repobilityId": "5b039712c626ff5c", "scanner": "scanner-primary", "fingerprint": "e3f316b04f61c57e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6a59f0bd012a1c7b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/watchers/remote-log-watcher.js:29"}, "properties": {"repobilityId": "5e2e9554b5ba0db6", "scanner": "scanner-primary", "fingerprint": "6a59f0bd012a1c7b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1bde6d9c4f893fc7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/watchers/log-watcher.js:25"}, "properties": {"repobilityId": "b3c032dfa60770a8", "scanner": "scanner-primary", "fingerprint": "1bde6d9c4f893fc7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7e1b6a24e72e198c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dual-brain/watchers/remote-git-watcher.js:27"}, "properties": {"repobilityId": "2c25645ab6f9418c", "scanner": "scanner-primary", "fingerprint": "7e1b6a24e72e198c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cc6aeab3202dea80", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/frontend/default/js/tinymce.min.js:2"}, "properties": {"repobilityId": "1607eaaa6b605084", "scanner": "scanner-primary", "fingerprint": "cc6aeab3202dea80", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-120c2be465ed502c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/frontend/default/js/toastr.js:235"}, "properties": {"repobilityId": "1d731fb37fc8f300", "scanner": "scanner-primary", "fingerprint": "120c2be465ed502c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-440742867cc5b2db", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/frontend/default/js/jwplayer.js:2"}, "properties": {"repobilityId": "7eee628a04ebb8e4", "scanner": "scanner-primary", "fingerprint": "440742867cc5b2db", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-537d88f6d3b2bcc0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/global/toastr/toastr.min.js:6"}, "properties": {"repobilityId": "58f0bd43a0b2cf19", "scanner": "scanner-primary", "fingerprint": "537d88f6d3b2bcc0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d19c53a1ba34e9de", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/app.min.js:1"}, "properties": {"repobilityId": "7f1fd9475430b6e6", "scanner": "scanner-primary", "fingerprint": "d19c53a1ba34e9de", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c363a8861b6c93e2", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 doc/assets/backend/js/app.js:753"}, "properties": {"repobilityId": "86f4b5a358097b0c", "scanner": "scanner-primary", "fingerprint": "c363a8861b6c93e2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-ade61775aa7d9662", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/app.js:19808"}, "properties": {"repobilityId": "2cb755109cab08fd", "scanner": "scanner-primary", "fingerprint": "ade61775aa7d9662", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9724e11990a50caf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.google-maps.js:1"}, "properties": {"repobilityId": "aa6da17bc966f8d0", "scanner": "scanner-primary", "fingerprint": "9724e11990a50caf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9ad6261a97a1035b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.apex-column.js:1"}, "properties": {"repobilityId": "798324ef6814cc93", "scanner": "scanner-primary", "fingerprint": "9ad6261a97a1035b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c90564aabdac63e3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.britechart.js:1"}, "properties": {"repobilityId": "573935b7e6cee280", "scanner": "scanner-primary", "fingerprint": "c90564aabdac63e3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e36ed1894af595bb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.apex-area.js:1"}, "properties": {"repobilityId": "4aa1ccc37f342815", "scanner": "scanner-primary", "fingerprint": "e36ed1894af595bb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-edf8bb3d84f3a672", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/backend/js/pages/demo.sellers.js:1"}, "properties": {"repobilityId": "8cab09eead6dd594", "scanner": "scanner-primary", "fingerprint": "edf8bb3d84f3a672", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7cfc90dd80f3f454", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 doc/assets/payment/js/stripe.js:4"}, "properties": {"repobilityId": "946412af02126c4d", "scanner": "scanner-primary", "fingerprint": "7cfc90dd80f3f454", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e6c19b77c6a32b84", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/js/pos.js:1454"}, "properties": {"repobilityId": "dda739fb73112254", "scanner": "scanner-primary", "fingerprint": "e6c19b77c6a32b84", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b2a67cc617207264", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/js/report.js:1403"}, "properties": {"repobilityId": "c546d5e9aad2471b", "scanner": "scanner-primary", "fingerprint": "b2a67cc617207264", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-696628ea3d855ce5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/js/printer.js:15"}, "properties": {"repobilityId": "35cd4d88f44cdc96", "scanner": "scanner-primary", "fingerprint": "696628ea3d855ce5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-06e9b2671ab33a9f", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/js/app.js:721"}, "properties": {"repobilityId": "844497b979268973", "scanner": "scanner-primary", "fingerprint": "06e9b2671ab33a9f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-3edafc587aa2d308", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell-v2/mockup-pages.jsx:18"}, "properties": {"repobilityId": "e24f362cc8226d08", "scanner": "scanner-primary", "fingerprint": "3edafc587aa2d308", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-56be34dfdc5ff3b5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell-v2/producao-page.jsx:294"}, "properties": {"repobilityId": "32a0b959fd3c8f19", "scanner": "scanner-primary", "fingerprint": "56be34dfdc5ff3b5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c0e155d7e4e4884c", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell-v2/mockup-bodies.js:4"}, "properties": {"repobilityId": "78a77ec5e0f35536", "scanner": "scanner-primary", "fingerprint": "c0e155d7e4e4884c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-5db210b1bda5b273", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell-v2/produto-app.jsx:96"}, "properties": {"repobilityId": "08f6552811c8b9e0", "scanner": "scanner-primary", "fingerprint": "5db210b1bda5b273", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4316468d560ddd15", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell-v2/recurring-page.jsx:865"}, "properties": {"repobilityId": "41aafd3f2b22c12f", "scanner": "scanner-primary", "fingerprint": "4316468d560ddd15", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-2dfa555ead7e98fb", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell-v2/vendas-extras.jsx:442"}, "properties": {"repobilityId": "56af73b23e2ae66a", "scanner": "scanner-primary", "fingerprint": "2dfa555ead7e98fb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-a25a938fe5d2139a", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell-v2/compras-page.jsx:218"}, "properties": {"repobilityId": "46f424e68370e2f6", "scanner": "scanner-primary", "fingerprint": "a25a938fe5d2139a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-01c97eb3efab5e05", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell/mockup-pages.jsx:18"}, "properties": {"repobilityId": "b906ed2a7519497d", "scanner": "scanner-primary", "fingerprint": "01c97eb3efab5e05", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-4ca1362f4df19349", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/producao-page.jsx:294"}, "properties": {"repobilityId": "f4369a35372739a4", "scanner": "scanner-primary", "fingerprint": "4ca1362f4df19349", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-66b510e59bdb1add", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-trouble-lib.jsx:146"}, "properties": {"repobilityId": "8fc322e8ec8b3bfb", "scanner": "scanner-primary", "fingerprint": "66b510e59bdb1add", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-9bcaf5d4b56372f3", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-trouble-editor.jsx:74"}, "properties": {"repobilityId": "51d7e48917de6585", "scanner": "scanner-primary", "fingerprint": "9bcaf5d4b56372f3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-38d5ca1dd6587fee", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/cowork-preview/erp-shell/vendas-page.jsx:346"}, "properties": {"repobilityId": "6f73f5556e1f119f", "scanner": "scanner-primary", "fingerprint": "38d5ca1dd6587fee", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fe2fa9f7ca81e8da", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-page.jsx:1208"}, "properties": {"repobilityId": "baed8ae7c3c5f816", "scanner": "scanner-primary", "fingerprint": "fe2fa9f7ca81e8da", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-0d4549c07e519bab", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell/kb-page.jsx:1237"}, "properties": {"repobilityId": "d7a5b0db415a455f", "scanner": "scanner-primary", "fingerprint": "0d4549c07e519bab", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b7697e4de6801b60", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/financeiro-app.jsx:196"}, "properties": {"repobilityId": "740761d1c9e24a87", "scanner": "scanner-primary", "fingerprint": "b7697e4de6801b60", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c9e37a03617a4976", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/cowork-preview/erp-shell/financeiro-app.jsx:748"}, "properties": {"repobilityId": "467d9d38f722225e", "scanner": "scanner-primary", "fingerprint": "c9e37a03617a4976", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-51e18f5f7224d6e0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/pg-sells-cobranca-preview.jsx:270"}, "properties": {"repobilityId": "6ca8734e6182f913", "scanner": "scanner-primary", "fingerprint": "51e18f5f7224d6e0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c0a6932ec570eb42", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/pg-payment-gateways-page.jsx:219"}, "properties": {"repobilityId": "726af3d3bb672736", "scanner": "scanner-primary", "fingerprint": "c0a6932ec570eb42", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4a5fec23dbae10ee", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/mockup-bodies.js:4"}, "properties": {"repobilityId": "d053ee7b9d872290", "scanner": "scanner-primary", "fingerprint": "4a5fec23dbae10ee", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-006f6c8879143cd5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/boleto-contas-app.jsx:359"}, "properties": {"repobilityId": "39b2535061531ddc", "scanner": "scanner-primary", "fingerprint": "006f6c8879143cd5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fe6cb106965e30a9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/pg-cobranca-page.jsx:290"}, "properties": {"repobilityId": "34ea5b1afab1c9e9", "scanner": "scanner-primary", "fingerprint": "fe6cb106965e30a9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-657c6144916b8b56", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/inbox-v2-extras.jsx:254"}, "properties": {"repobilityId": "86aac29c8a1acb26", "scanner": "scanner-primary", "fingerprint": "657c6144916b8b56", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-eff0e64d8eb615a9", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-images-print.jsx:170"}, "properties": {"repobilityId": "9a10a52f2caee278", "scanner": "scanner-primary", "fingerprint": "eff0e64d8eb615a9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-f31116f83aa31d19", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/vendas-extras.jsx:482"}, "properties": {"repobilityId": "284b5a5f0037690c", "scanner": "scanner-primary", "fingerprint": "f31116f83aa31d19", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-ff62a44fb01995fa", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/inbox-v2-ai.jsx:102"}, "properties": {"repobilityId": "762356dba9097d4b", "scanner": "scanner-primary", "fingerprint": "ff62a44fb01995fa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-f2fb7ff01619cab0", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell/inbox-v2-ai.jsx:112"}, "properties": {"repobilityId": "77d2b576764afbf0", "scanner": "scanner-primary", "fingerprint": "f2fb7ff01619cab0", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a458a00285569a78", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/inbox-v2-cur.jsx:249"}, "properties": {"repobilityId": "a6ab9e44fdebe7c1", "scanner": "scanner-primary", "fingerprint": "a458a00285569a78", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-dd82e7114923da8b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/pg-shared.jsx:277"}, "properties": {"repobilityId": "c486e50f7cdbc792", "scanner": "scanner-primary", "fingerprint": "dd82e7114923da8b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5efdeecd7c95041a", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/inbox-v2-out.jsx:124"}, "properties": {"repobilityId": "a0e03771d20d6df9", "scanner": "scanner-primary", "fingerprint": "5efdeecd7c95041a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-11a6909580966727", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/financeiro-telas-extras.jsx:300"}, "properties": {"repobilityId": "60e8b70705f0c6bd", "scanner": "scanner-primary", "fingerprint": "11a6909580966727", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-b52922b352090254", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 public/cowork-preview/erp-shell/financeiro-telas-extras.jsx:180"}, "properties": {"repobilityId": "9202e6ed6817b9d4", "scanner": "scanner-primary", "fingerprint": "b52922b352090254", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7a349ad8a90b2920", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-extras.jsx:128"}, "properties": {"repobilityId": "2b23f67d9f2fd7ca", "scanner": "scanner-primary", "fingerprint": "7a349ad8a90b2920", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-0c10bb069c23adad", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/cowork-preview/erp-shell/kb-extras.jsx:137"}, "properties": {"repobilityId": "2827d42616684f83", "scanner": "scanner-primary", "fingerprint": "0c10bb069c23adad", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0f5a729521e77c02", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/compras-page.jsx:218"}, "properties": {"repobilityId": "2673ae8158ba7209", "scanner": "scanner-primary", "fingerprint": "0f5a729521e77c02", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-8d8a27756a311c1c", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/cowork-preview/erp-shell/kb-paths.jsx:141"}, "properties": {"repobilityId": "b1b682fabd473e3b", "scanner": "scanner-primary", "fingerprint": "8d8a27756a311c1c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-926b3c417bd73258", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-trouble-lib.jsx:146"}, "properties": {"repobilityId": "3ec1b75f7f2816c4", "scanner": "scanner-primary", "fingerprint": "926b3c417bd73258", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-b9e359f00eb987f3", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-trouble-editor.jsx:74"}, "properties": {"repobilityId": "e31adad13cc44cb5", "scanner": "scanner-primary", "fingerprint": "b9e359f00eb987f3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-a64e6135e335bdd6", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-page.jsx:1208"}, "properties": {"repobilityId": "24718f30eece026e", "scanner": "scanner-primary", "fingerprint": "a64e6135e335bdd6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-bb37d76487980506", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/prototipos/kb/kb-page.jsx:1237"}, "properties": {"repobilityId": "d0a3948c69da9df3", "scanner": "scanner-primary", "fingerprint": "bb37d76487980506", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-225e5f2cd2817df9", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-images-print.jsx:170"}, "properties": {"repobilityId": "247d52f81b677dd0", "scanner": "scanner-primary", "fingerprint": "225e5f2cd2817df9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-3cb8c0fd9319d9a0", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-extras.jsx:128"}, "properties": {"repobilityId": "7722d8616bb424f4", "scanner": "scanner-primary", "fingerprint": "3cb8c0fd9319d9a0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-ade3b025cae1dc35", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/prototipos/kb/kb-extras.jsx:137"}, "properties": {"repobilityId": "172f6b07ca32dbef", "scanner": "scanner-primary", "fingerprint": "ade3b025cae1dc35", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8acc1ffbc994cb26", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/prototipos/kb/kb-paths.jsx:141"}, "properties": {"repobilityId": "1f0287edcca740d2", "scanner": "scanner-primary", "fingerprint": "8acc1ffbc994cb26", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-13bb798cc33253bd", "level": "warning", "message": {"text": "Privileged port 127 in use"}, "properties": {"repobilityId": "afafb77f13b4bf59", "scanner": "scanner-primary", "fingerprint": "13bb798cc33253bd", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/oimpresso-mcp/scripts/start-tunnel.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7442e9a0ee36bf72", "level": "warning", "message": {"text": "Privileged port 50 in use"}, "properties": {"repobilityId": "da61f654c07ea7a9", "scanner": "scanner-primary", "fingerprint": "7442e9a0ee36bf72", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/ollama-embedder/docker-compose.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-59877274b6e13297", "level": "warning", "message": {"text": "Privileged port 23 in use"}, "properties": {"repobilityId": "a1230e3dfc4becfa", "scanner": "scanner-primary", "fingerprint": "59877274b6e13297", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/oimpresso-workers/docker-compose.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-db6db78248e97f59", "level": "warning", "message": {"text": "Privileged port 55 in use"}, "properties": {"repobilityId": "51a768b3e1831ac0", "scanner": "scanner-primary", "fingerprint": "db6db78248e97f59", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/oimpresso-workers/docker-compose.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bf27f38a0f524641", "level": "warning", "message": {"text": "Privileged port 8 in use"}, "properties": {"repobilityId": "8e03f5632e703751", "scanner": "scanner-primary", "fingerprint": "bf27f38a0f524641", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-ragas-canary.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9e0ff52b6c4b07ab", "level": "warning", "message": {"text": "Privileged port 9 in use"}, "properties": {"repobilityId": "31590a6ba3409390", "scanner": "scanner-primary", "fingerprint": "9e0ff52b6c4b07ab", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-ragas-canary.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-09f2db067f8e31a0", "level": "warning", "message": {"text": "Privileged port 35 in use"}, "properties": {"repobilityId": "e997ec9811d79c6d", "scanner": "scanner-primary", "fingerprint": "09f2db067f8e31a0", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/governance-drift.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2bcf76efcff89f0c", "level": "warning", "message": {"text": "Privileged port 5 in use"}, "properties": {"repobilityId": "a8f80b4866464301", "scanner": "scanner-primary", "fingerprint": "2bcf76efcff89f0c", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-ragas-gate.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a374481f06b006e7", "level": "warning", "message": {"text": "Dockerfile runs as root: docker/oimpresso-mcp/Dockerfile"}, "properties": {"repobilityId": "7507f4c6f57eb123", "scanner": "scanner-primary", "fingerprint": "a374481f06b006e7", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-a92423ee39383e91", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: php:8.4-fpm-alpine"}, "properties": {"repobilityId": "69ff75b01342d577", "scanner": "scanner-primary", "fingerprint": "a92423ee39383e91", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/oimpresso-mcp/Dockerfile"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-7346697e925a06e9", "level": "warning", "message": {"text": "Dockerfile runs as root: lib-custom/laravel-boleto/Dockerfile"}, "properties": {"repobilityId": "b94aa37ee3fb1e2d", "scanner": "scanner-primary", "fingerprint": "7346697e925a06e9", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-f0ad13781939580a", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: php:7.3.25-fpm-alpine3.11"}, "properties": {"repobilityId": "160300ff29187b26", "scanner": "scanner-primary", "fingerprint": "f0ad13781939580a", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib-custom/laravel-boleto/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5e05a8ad200ade89", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/proxmox/docker-host/reverb/Dockerfile"}, "properties": {"repobilityId": "e6463452ea69ef4e", "scanner": "scanner-primary", "fingerprint": "5e05a8ad200ade89", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-9e605d495fcd0e35", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: php:8.4-cli-alpine"}, "properties": {"repobilityId": "752ea60850558eaf", "scanner": "scanner-primary", "fingerprint": "9e605d495fcd0e35", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/proxmox/docker-host/reverb/Dockerfile"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-8a4cd557dd0bfc18", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Modules/ProductCatalogue/Resources/assets/plugins/easy.qrcode.min.js:21"}, "properties": {"repobilityId": "aaeb80cc7b0a3b8c", "scanner": "scanner-primary", "fingerprint": "8a4cd557dd0bfc18", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/ProductCatalogue/Resources/assets/plugins/easy.qrcode.min.js"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-c0f9fc3fabb799af", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in Modules/Arquivos/README.md:25"}, "properties": {"repobilityId": "5f9e12826bd88d24", "scanner": "scanner-primary", "fingerprint": "c0f9fc3fabb799af", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/Arquivos/README.md"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-a7bd6663b3864930", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Modules/Officeimpresso/Resources/assets/plugins/easy.qrcode.min.js:21"}, "properties": {"repobilityId": "5eb75190e7a763dd", "scanner": "scanner-primary", "fingerprint": "a7bd6663b3864930", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/Officeimpresso/Resources/assets/plugins/easy.qrcode.min.js"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-a180eef1cab481e6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/ds-behavior.js:95"}, "properties": {"repobilityId": "79212d7b28fb7805", "scanner": "scanner-primary", "fingerprint": "a180eef1cab481e6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/ds-behavior.js"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-cf2bf7bdc636dbda", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in prototipo-ui/ds-guard.mjs:31"}, "properties": {"repobilityId": "3e1d2c109a6a6ccf", "scanner": "scanner-primary", "fingerprint": "cf2bf7bdc636dbda", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/ds-guard.mjs"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-608e7333420b35db", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/Design System v4.html:3818"}, "properties": {"repobilityId": "7861438baff3c8c7", "scanner": "scanner-primary", "fingerprint": "608e7333420b35db", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/Design System v4.html"}, "region": {"startLine": 3818}}}]}, {"ruleId": "scanner-4ba490e2359f433f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_arquivo/ds/Design System v3.html:3813"}, "properties": {"repobilityId": "7c4d2133b293e67d", "scanner": "scanner-primary", "fingerprint": "4ba490e2359f433f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_arquivo/ds/Design System v3.html"}, "region": {"startLine": 3813}}}]}, {"ruleId": "scanner-39bb7d1eec86bbf5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/mockup-pages.jsx:18"}, "properties": {"repobilityId": "52e80490a4592705", "scanner": "scanner-primary", "fingerprint": "39bb7d1eec86bbf5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/mockup-pages.jsx"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-46a86b788e7f1d79", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Product Picker Mecanica.html:288"}, "properties": {"repobilityId": "74f78a19a0ba5b84", "scanner": "scanner-primary", "fingerprint": "46a86b788e7f1d79", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Product Picker Mecanica.html"}, "region": {"startLine": 288}}}]}, {"ruleId": "scanner-f275df44fe327c25", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Venda por Estagio FSM v1.html:321"}, "properties": {"repobilityId": "08928f2d6b92ac81", "scanner": "scanner-primary", "fingerprint": "f275df44fe327c25", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Venda por Estagio FSM v1.html"}, "region": {"startLine": 321}}}]}, {"ruleId": "scanner-f740f0a531f1ec29", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-page.jsx:1237"}, "properties": {"repobilityId": "23c2a4ad0689c4c2", "scanner": "scanner-primary", "fingerprint": "f740f0a531f1ec29", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-page.jsx"}, "region": {"startLine": 1237}}}]}, {"ruleId": "scanner-8bbd811dac47ec86", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Progresso de Notas.html:406"}, "properties": {"repobilityId": "08f84025e3b7d960", "scanner": "scanner-primary", "fingerprint": "8bbd811dac47ec86", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Progresso de Notas.html"}, "region": {"startLine": 406}}}]}, {"ruleId": "scanner-78f48ba9d95b74a3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Venda Simples F1.html:185"}, "properties": {"repobilityId": "9a08f3e4dacc5f8e", "scanner": "scanner-primary", "fingerprint": "78f48ba9d95b74a3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Venda Simples F1.html"}, "region": {"startLine": 185}}}]}, {"ruleId": "scanner-accc6ec9d4769082", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-v2-ai.jsx:112"}, "properties": {"repobilityId": "ef6e812c0c86d1ee", "scanner": "scanner-primary", "fingerprint": "accc6ec9d4769082", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-v2-ai.jsx"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-677150ab478b35be", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Venda por Estagio FSM.html:425"}, "properties": {"repobilityId": "cb159409040c9ba7", "scanner": "scanner-primary", "fingerprint": "677150ab478b35be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Venda por Estagio FSM.html"}, "region": {"startLine": 425}}}]}, {"ruleId": "scanner-bd12e6f0d4a267fc", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-extras.jsx:137"}, "properties": {"repobilityId": "e079b93b7cf3d193", "scanner": "scanner-primary", "fingerprint": "bd12e6f0d4a267fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-extras.jsx"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-698ddf6b8e305864", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Product Picker.html:177"}, "properties": {"repobilityId": "acc51836c8e73e50", "scanner": "scanner-primary", "fingerprint": "698ddf6b8e305864", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/Product Picker.html"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-37efed06db2e89fd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto/visual-source-picker.html:177"}, "properties": {"repobilityId": "34738b37e1a35307", "scanner": "scanner-primary", "fingerprint": "37efed06db2e89fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto/visual-source-picker.html"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-2af18d5abd103297", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/vendas-cockpit/visual-source-fsm.html:425"}, "properties": {"repobilityId": "d4a23bd2a61242a4", "scanner": "scanner-primary", "fingerprint": "2af18d5abd103297", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/vendas-cockpit/visual-source-fsm.html"}, "region": {"startLine": 425}}}]}, {"ruleId": "scanner-8dcd771f322525e4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/vendas-cockpit/visual-source-fsm-v1.html:321"}, "properties": {"repobilityId": "a7bb019b5c6f9698", "scanner": "scanner-primary", "fingerprint": "8dcd771f322525e4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/vendas-cockpit/visual-source-fsm-v1.html"}, "region": {"startLine": 321}}}]}, {"ruleId": "scanner-7f05cdf82fd8a656", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-page.jsx:1237"}, "properties": {"repobilityId": "ccb99de565f9a72b", "scanner": "scanner-primary", "fingerprint": "7f05cdf82fd8a656", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-page.jsx"}, "region": {"startLine": 1237}}}]}, {"ruleId": "scanner-e260f7d29a10598e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-extras.jsx:137"}, "properties": {"repobilityId": "8e2f83cb06689bbf", "scanner": "scanner-primary", "fingerprint": "e260f7d29a10598e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-extras.jsx"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-1cb23cf9a17b3e02", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-create/visual-source.html:185"}, "properties": {"repobilityId": "14afd425eb3f9e4e", "scanner": "scanner-primary", "fingerprint": "1cb23cf9a17b3e02", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-create/visual-source.html"}, "region": {"startLine": 185}}}]}, {"ruleId": "scanner-2471e13b91858575", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/mockup-pages.jsx:18"}, "properties": {"repobilityId": "2a0f6c840e3918a4", "scanner": "scanner-primary", "fingerprint": "2471e13b91858575", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/mockup-pages.jsx"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-b66b8315bddf80d8", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-page.jsx:1237"}, "properties": {"repobilityId": "e9dc7fd1a471ab90", "scanner": "scanner-primary", "fingerprint": "b66b8315bddf80d8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-page.jsx"}, "region": {"startLine": 1237}}}]}, {"ruleId": "scanner-6ebf70281bf1d61e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-ai.jsx:112"}, "properties": {"repobilityId": "bc19140cb6817dc5", "scanner": "scanner-primary", "fingerprint": "6ebf70281bf1d61e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-v2-ai.jsx"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-3ecf17117f6b4e66", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-extras.jsx:137"}, "properties": {"repobilityId": "fb2d3568b64577f0", "scanner": "scanner-primary", "fingerprint": "3ecf17117f6b4e66", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-extras.jsx"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-6100f9801a8b4117", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/mockup-pages.jsx:18"}, "properties": {"repobilityId": "3b850d5f2040a9e8", "scanner": "scanner-primary", "fingerprint": "6100f9801a8b4117", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/mockup-pages.jsx"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-c75d06d7cd4b4f50", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-page.jsx:1237"}, "properties": {"repobilityId": "8d7bc4b6b679e3c7", "scanner": "scanner-primary", "fingerprint": "c75d06d7cd4b4f50", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-page.jsx"}, "region": {"startLine": 1237}}}]}, {"ruleId": "scanner-6a731ebf111ebe1a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-v2-ai.jsx:112"}, "properties": {"repobilityId": "0b4e638280c1b413", "scanner": "scanner-primary", "fingerprint": "6a731ebf111ebe1a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-v2-ai.jsx"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-c3fbc0831aae84b0", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-extras.jsx:137"}, "properties": {"repobilityId": "634e1291aa34e598", "scanner": "scanner-primary", "fingerprint": "c3fbc0831aae84b0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-extras.jsx"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-1006a2b45b90282a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/shared/DataTable.tsx:214"}, "properties": {"repobilityId": "a37e4d0e982e1010", "scanner": "scanner-primary", "fingerprint": "1006a2b45b90282a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/shared/DataTable.tsx"}, "region": {"startLine": 214}}}]}, {"ruleId": "scanner-14647970d11c3db6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/mockup-pages.jsx:18"}, "properties": {"repobilityId": "b8ffecde551b8faa", "scanner": "scanner-primary", "fingerprint": "14647970d11c3db6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/mockup-pages.jsx"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-8319d7b5c870fa12", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Product Picker Mecanica.html:288"}, "properties": {"repobilityId": "d446baaa14f1cda6", "scanner": "scanner-primary", "fingerprint": "8319d7b5c870fa12", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Product Picker Mecanica.html"}, "region": {"startLine": 288}}}]}, {"ruleId": "scanner-1542c165201b657c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Venda por Estagio FSM v1.html:321"}, "properties": {"repobilityId": "ee7c1245756445af", "scanner": "scanner-primary", "fingerprint": "1542c165201b657c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Venda por Estagio FSM v1.html"}, "region": {"startLine": 321}}}]}, {"ruleId": "scanner-9e9e509bfa8abac1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Venda Simples F1.html:185"}, "properties": {"repobilityId": "5507d337ac58ac36", "scanner": "scanner-primary", "fingerprint": "9e9e509bfa8abac1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Venda Simples F1.html"}, "region": {"startLine": 185}}}]}, {"ruleId": "scanner-8221e7835b12e3b6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Venda por Estagio FSM.html:425"}, "properties": {"repobilityId": "5605a2a573b6ada3", "scanner": "scanner-primary", "fingerprint": "8221e7835b12e3b6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Venda por Estagio FSM.html"}, "region": {"startLine": 425}}}]}, {"ruleId": "scanner-e1923477ae89ee82", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Product Picker.html:177"}, "properties": {"repobilityId": "981fdd70be41a7df", "scanner": "scanner-primary", "fingerprint": "e1923477ae89ee82", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/Product Picker.html"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-c1b2a1f3f8e37a8b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Components/shared/DataTable.tsx:214"}, "properties": {"repobilityId": "5c9a703516414d12", "scanner": "scanner-primary", "fingerprint": "c1b2a1f3f8e37a8b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Components/shared/DataTable.tsx"}, "region": {"startLine": 214}}}]}, {"ruleId": "scanner-d880650ed7a12491", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/Venda por Estagio FSM v1.html:321"}, "properties": {"repobilityId": "5f0265f86a843de3", "scanner": "scanner-primary", "fingerprint": "d880650ed7a12491", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/Venda por Estagio FSM v1.html"}, "region": {"startLine": 321}}}]}, {"ruleId": "scanner-f91cf5f0bc6b4d31", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/Venda Simples F1.html:185"}, "properties": {"repobilityId": "962523f36a9c49ee", "scanner": "scanner-primary", "fingerprint": "f91cf5f0bc6b4d31", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/Venda Simples F1.html"}, "region": {"startLine": 185}}}]}, {"ruleId": "scanner-6504ec499476ec66", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/Venda por Estagio FSM.html:425"}, "properties": {"repobilityId": "7b626b9069d00d3e", "scanner": "scanner-primary", "fingerprint": "6504ec499476ec66", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/Venda por Estagio FSM.html"}, "region": {"startLine": 425}}}]}, {"ruleId": "scanner-52d218f3e7ae6a1c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/Product Picker.html:177"}, "properties": {"repobilityId": "809059eb8098bf6b", "scanner": "scanner-primary", "fingerprint": "52d218f3e7ae6a1c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/Product Picker.html"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-a4c3dad3374ad744", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/mockup-pages.jsx:18"}, "properties": {"repobilityId": "8e26defca1dd783e", "scanner": "scanner-primary", "fingerprint": "a4c3dad3374ad744", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/mockup-pages.jsx"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-b2fa0b4ba9effb8c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Product Picker Mecanica.html:288"}, "properties": {"repobilityId": "a39cfbd8462802d1", "scanner": "scanner-primary", "fingerprint": "b2fa0b4ba9effb8c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Product Picker Mecanica.html"}, "region": {"startLine": 288}}}]}, {"ruleId": "scanner-773fd300e5eaa66b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Venda por Estagio FSM v1.html:321"}, "properties": {"repobilityId": "1dc877d8512612b0", "scanner": "scanner-primary", "fingerprint": "773fd300e5eaa66b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Venda por Estagio FSM v1.html"}, "region": {"startLine": 321}}}]}, {"ruleId": "scanner-6b5001c453353eae", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-page.jsx:1237"}, "properties": {"repobilityId": "e4b139c5b4f4df33", "scanner": "scanner-primary", "fingerprint": "6b5001c453353eae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-page.jsx"}, "region": {"startLine": 1237}}}]}, {"ruleId": "scanner-875e5144f79ab55a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Progresso de Notas.html:406"}, "properties": {"repobilityId": "649c67a43292034e", "scanner": "scanner-primary", "fingerprint": "875e5144f79ab55a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Progresso de Notas.html"}, "region": {"startLine": 406}}}]}, {"ruleId": "scanner-a0e84d66f954c2ce", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Venda Simples F1.html:185"}, "properties": {"repobilityId": "4471ad4d7f725ea8", "scanner": "scanner-primary", "fingerprint": "a0e84d66f954c2ce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Venda Simples F1.html"}, "region": {"startLine": 185}}}]}, {"ruleId": "scanner-1ab014013ffd55cb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-v2-ai.jsx:112"}, "properties": {"repobilityId": "9024eedf43685b51", "scanner": "scanner-primary", "fingerprint": "1ab014013ffd55cb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-v2-ai.jsx"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-4d7e5630094ba025", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Venda por Estagio FSM.html:425"}, "properties": {"repobilityId": "d010ba6fe2013e33", "scanner": "scanner-primary", "fingerprint": "4d7e5630094ba025", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Venda por Estagio FSM.html"}, "region": {"startLine": 425}}}]}, {"ruleId": "scanner-10d60905681ad75e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-extras.jsx:137"}, "properties": {"repobilityId": "733f04a64922917f", "scanner": "scanner-primary", "fingerprint": "10d60905681ad75e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-extras.jsx"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-6647da41caa40c91", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Product Picker.html:177"}, "properties": {"repobilityId": "6f79075383da52b7", "scanner": "scanner-primary", "fingerprint": "6647da41caa40c91", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/Product Picker.html"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-54194f364355abf9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in prototipo-ui/audit/review-gen.mjs:25"}, "properties": {"repobilityId": "47bf0ea54ece97f1", "scanner": "scanner-primary", "fingerprint": "54194f364355abf9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/audit/review-gen.mjs"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-1e14e828f9533517", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in prototipo-ui/audit/protocol-freshness.mjs:27"}, "properties": {"repobilityId": "f1d4e2531268896b", "scanner": "scanner-primary", "fingerprint": "1e14e828f9533517", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/audit/protocol-freshness.mjs"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-64dca1978c139922", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in prototipo-ui/audit/score-mechanized.mjs:17"}, "properties": {"repobilityId": "a6af127de97b6942", "scanner": "scanner-primary", "fingerprint": "64dca1978c139922", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/audit/score-mechanized.mjs"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-eb84ba265e68905b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/ds-v6/gabarito-vendas.html:250"}, "properties": {"repobilityId": "10a0789bdcce69e1", "scanner": "scanner-primary", "fingerprint": "eb84ba265e68905b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/ds-v6/gabarito-vendas.html"}, "region": {"startLine": 250}}}]}, {"ruleId": "scanner-0bdc21333490fba5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/mockup-pages.jsx:18"}, "properties": {"repobilityId": "204fa9b72ffbc0d5", "scanner": "scanner-primary", "fingerprint": "0bdc21333490fba5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/mockup-pages.jsx"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-cc6ba716ebb584a6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-page.jsx:1237"}, "properties": {"repobilityId": "14419f0eec7b6c72", "scanner": "scanner-primary", "fingerprint": "cc6ba716ebb584a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-page.jsx"}, "region": {"startLine": 1237}}}]}, {"ruleId": "scanner-276de2e0b9cd8b83", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-ai.jsx:112"}, "properties": {"repobilityId": "53c2c97f15c5fd15", "scanner": "scanner-primary", "fingerprint": "276de2e0b9cd8b83", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-v2-ai.jsx"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-d33223711742a63e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-extras.jsx:137"}, "properties": {"repobilityId": "d9cb6935804a1286", "scanner": "scanner-primary", "fingerprint": "d33223711742a63e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-extras.jsx"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-34b7723e59da4f31", "level": "note", "message": {"text": "Insecure pattern 'document_write' in prototipo-ui/prototipos/clientes/clientes-975.jsx:343"}, "properties": {"repobilityId": "b7a5b8c150e4ebdd", "scanner": "scanner-primary", "fingerprint": "34b7723e59da4f31", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/prototipos/clientes/clientes-975.jsx"}, "region": {"startLine": 343}}}]}, {"ruleId": "scanner-7582e1f9ff5dc13b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/prototipos/clientes/clientes-975.jsx:280"}, "properties": {"repobilityId": "1e8b5f7455250562", "scanner": "scanner-primary", "fingerprint": "7582e1f9ff5dc13b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/prototipos/clientes/clientes-975.jsx"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-0737590283867494", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototipo-ui/prototipos/caixa-unificada/inbox-ai.jsx:112"}, "properties": {"repobilityId": "3b5095a8da4a4e95", "scanner": "scanner-primary", "fingerprint": "0737590283867494", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/prototipos/caixa-unificada/inbox-ai.jsx"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-cfc24c4491619d2c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in prototipo-ui/prototipos/pageheader-canon-v3/index.html:585"}, "properties": {"repobilityId": "fe97236013710aae", "scanner": "scanner-primary", "fingerprint": "cfc24c4491619d2c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/prototipos/pageheader-canon-v3/index.html"}, "region": {"startLine": 585}}}]}, {"ruleId": "scanner-e49ff6d5f88e4350", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/js/all.js:1"}, "properties": {"repobilityId": "553dbc1b20fba5a7", "scanner": "scanner-primary", "fingerprint": "e49ff6d5f88e4350", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/js/all.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f95de1bc2ab14c62", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Components/shared/DataTable.tsx:214"}, "properties": {"repobilityId": "8c911d52fd2a5586", "scanner": "scanner-primary", "fingerprint": "f95de1bc2ab14c62", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Components/shared/DataTable.tsx"}, "region": {"startLine": 214}}}]}, {"ruleId": "scanner-a4b64bbce28d1214", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/TransactionPayment/Index.tsx:293"}, "properties": {"repobilityId": "7c16df0e947fb115", "scanner": "scanner-primary", "fingerprint": "a4b64bbce28d1214", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/TransactionPayment/Index.tsx"}, "region": {"startLine": 293}}}]}, {"ruleId": "scanner-e2b35904933088d2", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/TransactionPayment/Show.tsx:119"}, "properties": {"repobilityId": "609d5cb4cd7782d8", "scanner": "scanner-primary", "fingerprint": "e2b35904933088d2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/TransactionPayment/Show.tsx"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-572873af5c632e83", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Todo/Index.tsx:398"}, "properties": {"repobilityId": "585d9cdca6fd9caa", "scanner": "scanner-primary", "fingerprint": "572873af5c632e83", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Essentials/Todo/Index.tsx"}, "region": {"startLine": 398}}}]}, {"ruleId": "scanner-73604fc158e4633f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Todo/Show.tsx:327"}, "properties": {"repobilityId": "263e918ef4d8659a", "scanner": "scanner-primary", "fingerprint": "73604fc158e4633f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Essentials/Todo/Show.tsx"}, "region": {"startLine": 327}}}]}, {"ruleId": "scanner-9ca2008b54de5429", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Knowledge/Index.tsx:150"}, "properties": {"repobilityId": "d27c784eede64627", "scanner": "scanner-primary", "fingerprint": "9ca2008b54de5429", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Essentials/Knowledge/Index.tsx"}, "region": {"startLine": 150}}}]}, {"ruleId": "scanner-dbc80d81ad18493f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Knowledge/Show.tsx:163"}, "properties": {"repobilityId": "31d828a8d002e794", "scanner": "scanner-primary", "fingerprint": "dbc80d81ad18493f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Essentials/Knowledge/Show.tsx"}, "region": {"startLine": 163}}}]}, {"ruleId": "scanner-90416fd953c6798c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Essentials/Messages/Index.tsx:212"}, "properties": {"repobilityId": "f3321c16c4fd0f27", "scanner": "scanner-primary", "fingerprint": "90416fd953c6798c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Essentials/Messages/Index.tsx"}, "region": {"startLine": 212}}}]}, {"ruleId": "scanner-118b421e57af553e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Site/Page.tsx:69"}, "properties": {"repobilityId": "8c1cb72ab7b73349", "scanner": "scanner-primary", "fingerprint": "118b421e57af553e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Site/Page.tsx"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-f621f8d3e8c365dd", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Site/BlogPost.tsx:80"}, "properties": {"repobilityId": "4e5663246488df80", "scanner": "scanner-primary", "fingerprint": "f621f8d3e8c365dd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Site/BlogPost.tsx"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-e2b75c6f7310b1d5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/MemCofre/Inbox.tsx:361"}, "properties": {"repobilityId": "e34f359b674d52df", "scanner": "scanner-primary", "fingerprint": "e2b75c6f7310b1d5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/MemCofre/Inbox.tsx"}, "region": {"startLine": 361}}}]}, {"ruleId": "scanner-43754ad90f87b9df", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Financeiro/Dashboard/Index.tsx:401"}, "properties": {"repobilityId": "4145826da32c4b23", "scanner": "scanner-primary", "fingerprint": "43754ad90f87b9df", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Financeiro/Dashboard/Index.tsx"}, "region": {"startLine": 401}}}]}, {"ruleId": "scanner-743d782df406707f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Cliente/_show/SalesTab.tsx:393"}, "properties": {"repobilityId": "8ab0d24dc4cbb920", "scanner": "scanner-primary", "fingerprint": "743d782df406707f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Cliente/_show/SalesTab.tsx"}, "region": {"startLine": 393}}}]}, {"ruleId": "scanner-5c0feff78f69fb6e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/team-mcp/CcSessions/Index.tsx:334"}, "properties": {"repobilityId": "67c566b297528e75", "scanner": "scanner-primary", "fingerprint": "5c0feff78f69fb6e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/team-mcp/CcSessions/Index.tsx"}, "region": {"startLine": 334}}}]}, {"ruleId": "scanner-c2509772b4209b04", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Auditoria/Index.tsx:203"}, "properties": {"repobilityId": "808a0547d9956f8c", "scanner": "scanner-primary", "fingerprint": "c2509772b4209b04", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Auditoria/Index.tsx"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-12881abb0089d07c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/kb/Index.tsx:421"}, "properties": {"repobilityId": "e502b4bdd0dc06e8", "scanner": "scanner-primary", "fingerprint": "12881abb0089d07c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/kb/Index.tsx"}, "region": {"startLine": 421}}}]}, {"ruleId": "scanner-2cd449f57448f8c4", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Colaboradores/Index.tsx:179"}, "properties": {"repobilityId": "02034e5c2f0df64b", "scanner": "scanner-primary", "fingerprint": "2cd449f57448f8c4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Ponto/Colaboradores/Index.tsx"}, "region": {"startLine": 179}}}]}, {"ruleId": "scanner-0fee7d25d944836a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Importacoes/Index.tsx:152"}, "properties": {"repobilityId": "2d143d5cbdab5bce", "scanner": "scanner-primary", "fingerprint": "0fee7d25d944836a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Ponto/Importacoes/Index.tsx"}, "region": {"startLine": 152}}}]}, {"ruleId": "scanner-b0452f0ed12a2a86", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Escalas/Index.tsx:133"}, "properties": {"repobilityId": "91d4dff2f23efa24", "scanner": "scanner-primary", "fingerprint": "b0452f0ed12a2a86", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Ponto/Escalas/Index.tsx"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-5c82bc5759521c55", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Aprovacoes/Index.tsx:466"}, "properties": {"repobilityId": "52be8f129cc69c4b", "scanner": "scanner-primary", "fingerprint": "5c82bc5759521c55", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Ponto/Aprovacoes/Index.tsx"}, "region": {"startLine": 466}}}]}, {"ruleId": "scanner-2355812106538e9e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Intercorrencias/Index.tsx:226"}, "properties": {"repobilityId": "971c2ce9a2c17464", "scanner": "scanner-primary", "fingerprint": "2355812106538e9e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Ponto/Intercorrencias/Index.tsx"}, "region": {"startLine": 226}}}]}, {"ruleId": "scanner-2d669243f775884c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/BancoHoras/Index.tsx:156"}, "properties": {"repobilityId": "fcc90948cc511ad3", "scanner": "scanner-primary", "fingerprint": "2d669243f775884c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Ponto/BancoHoras/Index.tsx"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-e3f3323c1edfd6f7", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in resources/js/Pages/Ponto/Espelho/Index.tsx:140"}, "properties": {"repobilityId": "ea196316100ae71e", "scanner": "scanner-primary", "fingerprint": "e3f3323c1edfd6f7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Pages/Ponto/Espelho/Index.tsx"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-314e54cc166db4b7", "level": "note", "message": {"text": "Insecure pattern 'document_write' in resources/js/Lib/printSaleReceipt.ts:202"}, "properties": {"repobilityId": "024e3e37ca20aff6", "scanner": "scanner-primary", "fingerprint": "314e54cc166db4b7", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Lib/printSaleReceipt.ts"}, "region": {"startLine": 202}}}]}, {"ruleId": "scanner-e68f0abc90b63f29", "level": "note", "message": {"text": "Insecure pattern 'document_write' in resources/js/Lib/printServiceOrder.ts:158"}, "properties": {"repobilityId": "1c53a465527e9084", "scanner": "scanner-primary", "fingerprint": "e68f0abc90b63f29", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/js/Lib/printServiceOrder.ts"}, "region": {"startLine": 158}}}]}, {"ruleId": "scanner-5171a593a3c54e05", "level": "note", "message": {"text": "Insecure pattern 'document_write' in resources/plugins/printThis.js:95"}, "properties": {"repobilityId": "5f0fa6ed5b64ba04", "scanner": "scanner-primary", "fingerprint": "5171a593a3c54e05", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/printThis.js"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-c3b911a2b9a5a82e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.js:544"}, "properties": {"repobilityId": "33077b9869c6abb9", "scanner": "scanner-primary", "fingerprint": "c3b911a2b9a5a82e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.js"}, "region": {"startLine": 544}}}]}, {"ruleId": "scanner-1c38fa92877a3e15", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.min.js:4"}, "properties": {"repobilityId": "6c419837d794879a", "scanner": "scanner-primary", "fingerprint": "1c38fa92877a3e15", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.min.js"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-90a5c8796473668d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/daterangepicker/daterangepicker.js:158"}, "properties": {"repobilityId": "f576d2b10cf8e9ff", "scanner": "scanner-primary", "fingerprint": "90a5c8796473668d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/daterangepicker/daterangepicker.js"}, "region": {"startLine": 158}}}]}, {"ruleId": "scanner-90b24efdf53163d4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/jQuery/jquery-2.2.3.min.js:2"}, "properties": {"repobilityId": "bf8812a1458b5710", "scanner": "scanner-primary", "fingerprint": "90b24efdf53163d4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/jQuery/jquery-2.2.3.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-c1a0e23647d7d4cf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/jQuery/jquery-3.4.1.min.js:2"}, "properties": {"repobilityId": "af456b30b828a47b", "scanner": "scanner-primary", "fingerprint": "c1a0e23647d7d4cf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/jQuery/jquery-3.4.1.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-5c94c2c2ed08cc8c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js:2"}, "properties": {"repobilityId": "9b743eac62b206cd", "scanner": "scanner-primary", "fingerprint": "5c94c2c2ed08cc8c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-cf654061d8c9c879", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js:820"}, "properties": {"repobilityId": "f0f1a2c1f7ac9d38", "scanner": "scanner-primary", "fingerprint": "cf654061d8c9c879", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js"}, "region": {"startLine": 820}}}]}, {"ruleId": "scanner-10e9d77284e15b51", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/select2/select2.js:1275"}, "properties": {"repobilityId": "3eb4b4ef652c1b9d", "scanner": "scanner-primary", "fingerprint": "10e9d77284e15b51", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/select2/select2.js"}, "region": {"startLine": 1275}}}]}, {"ruleId": "scanner-4c4fb4e49192d29c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/select2/select2.full.js:1275"}, "properties": {"repobilityId": "1b280cffe866d537", "scanner": "scanner-primary", "fingerprint": "4c4fb4e49192d29c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/select2/select2.full.js"}, "region": {"startLine": 1275}}}]}, {"ruleId": "scanner-7b827e144b3bff1f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables.min.js:22"}, "properties": {"repobilityId": "36a2608e82171563", "scanner": "scanner-primary", "fingerprint": "7b827e144b3bff1f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables.min.js"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-5db7e1e88ef55d24", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/dataTables.buttons.js:1740"}, "properties": {"repobilityId": "aa40af27f8c06a07", "scanner": "scanner-primary", "fingerprint": "5db7e1e88ef55d24", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/dataTables.buttons.js"}, "region": {"startLine": 1740}}}]}, {"ruleId": "scanner-bdb8383be6fc3f46", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.print.min.js:3"}, "properties": {"repobilityId": "52e4dc52e1053842", "scanner": "scanner-primary", "fingerprint": "bdb8383be6fc3f46", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.print.min.js"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-86adbb0a87432585", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.min.js:8"}, "properties": {"repobilityId": "10bcc27761c76662", "scanner": "scanner-primary", "fingerprint": "86adbb0a87432585", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.min.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-25a72db9f3ccbb9d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.js:194"}, "properties": {"repobilityId": "c8b43da3c22db158", "scanner": "scanner-primary", "fingerprint": "25a72db9f3ccbb9d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.flash.js"}, "region": {"startLine": 194}}}]}, {"ruleId": "scanner-f5a36d1153c074ab", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/dataTables.buttons.min.js:35"}, "properties": {"repobilityId": "6b5013f4bfbb7e06", "scanner": "scanner-primary", "fingerprint": "f5a36d1153c074ab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/dataTables.buttons.min.js"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-b3bbe53ab9ecd1b7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.print.js:137"}, "properties": {"repobilityId": "d9682980a41e401a", "scanner": "scanner-primary", "fingerprint": "b3bbe53ab9ecd1b7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/DataTables/Buttons-1.4.2/js/buttons.print.js"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-b30114ef04666ade", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/FixedColumns-3.2.3/js/dataTables.fixedColumns.min.js:26"}, "properties": {"repobilityId": "0aafdf293c1096e3", "scanner": "scanner-primary", "fingerprint": "b30114ef04666ade", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/DataTables/FixedColumns-3.2.3/js/dataTables.fixedColumns.min.js"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-dd18b109258b458c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/DataTables/FixedColumns-3.2.3/js/dataTables.fixedColumns.js:1191"}, "properties": {"repobilityId": "01ad2f135b8926ba", "scanner": "scanner-primary", "fingerprint": "dd18b109258b458c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/DataTables/FixedColumns-3.2.3/js/dataTables.fixedColumns.js"}, "region": {"startLine": 1191}}}]}, {"ruleId": "scanner-f97693de863060fb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/pace/pace.js:249"}, "properties": {"repobilityId": "fabd81a58c44594b", "scanner": "scanner-primary", "fingerprint": "f97693de863060fb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/pace/pace.js"}, "region": {"startLine": 249}}}]}, {"ruleId": "scanner-94e9ce979eabdbc9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/pace/pace.min.js:2"}, "properties": {"repobilityId": "31a823c0e6374acb", "scanner": "scanner-primary", "fingerprint": "94e9ce979eabdbc9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/pace/pace.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-6c2317ffc667a15f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/bootstrap-slider/bootstrap-slider.js:473"}, "properties": {"repobilityId": "ba310bcf8569810f", "scanner": "scanner-primary", "fingerprint": "6c2317ffc667a15f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/bootstrap-slider/bootstrap-slider.js"}, "region": {"startLine": 473}}}]}, {"ruleId": "scanner-d82d51c5e95d55a2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.js:1543"}, "properties": {"repobilityId": "2236814c82ccfe72", "scanner": "scanner-primary", "fingerprint": "d82d51c5e95d55a2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.js"}, "region": {"startLine": 1543}}}]}, {"ruleId": "scanner-72b7e569187126f5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.min.js:6"}, "properties": {"repobilityId": "c813a9beee4a624a", "scanner": "scanner-primary", "fingerprint": "72b7e569187126f5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.min.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-9079019571d12578", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in resources/plugins/sweetalert/sweetalert.min.js:1"}, "properties": {"repobilityId": "548342579c27abe0", "scanner": "scanner-primary", "fingerprint": "9079019571d12578", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/sweetalert/sweetalert.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7dabb7b8bd25213f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/sweetalert/sweetalert.min.js:1"}, "properties": {"repobilityId": "e546d02bc3646bea", "scanner": "scanner-primary", "fingerprint": "7dabb7b8bd25213f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/sweetalert/sweetalert.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6f03d996e5b00cfe", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in resources/plugins/calculator/calculator.js:14"}, "properties": {"repobilityId": "84e26408264cb466", "scanner": "scanner-primary", "fingerprint": "6f03d996e5b00cfe", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/calculator/calculator.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-55a6d32738054570", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/dropzone/dropzone.js:778"}, "properties": {"repobilityId": "4c2a60b036541d1f", "scanner": "scanner-primary", "fingerprint": "55a6d32738054570", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/dropzone/dropzone.js"}, "region": {"startLine": 778}}}]}, {"ruleId": "scanner-2fbd138403f9ff94", "level": "note", "message": {"text": "Insecure pattern 'document_write' in resources/plugins/jquery-validation-1.16.0/demo/tinymce/tiny_mce.js:1"}, "properties": {"repobilityId": "ba584c6510a78f10", "scanner": "scanner-primary", "fingerprint": "2fbd138403f9ff94", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/demo/tinymce/tiny_mce.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-08d9df79a8243065", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/demo/tinymce/tiny_mce.js:1"}, "properties": {"repobilityId": "3cdf7c5f7d5fff30", "scanner": "scanner-primary", "fingerprint": "08d9df79a8243065", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/demo/tinymce/tiny_mce.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3546c3ac5953371a", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/demo/tinymce/tiny_mce.js:1"}, "properties": {"repobilityId": "b6d57573eae3a7ff", "scanner": "scanner-primary", "fingerprint": "3546c3ac5953371a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/demo/tinymce/tiny_mce.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dac759e2a9cc08ce", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js:560"}, "properties": {"repobilityId": "488988122bc19fea", "scanner": "scanner-primary", "fingerprint": "dac759e2a9cc08ce", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js"}, "region": {"startLine": 560}}}]}, {"ruleId": "scanner-bcbb49d1907acdd5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js:1316"}, "properties": {"repobilityId": "bc6e8f9e3b114c23", "scanner": "scanner-primary", "fingerprint": "bcbb49d1907acdd5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js"}, "region": {"startLine": 1316}}}]}, {"ruleId": "scanner-cc2f72b32945b7fe", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js:6290"}, "properties": {"repobilityId": "5f941b6ffc07755a", "scanner": "scanner-primary", "fingerprint": "cc2f72b32945b7fe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js"}, "region": {"startLine": 6290}}}]}, {"ruleId": "scanner-7fa86b85e947953d", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:573"}, "properties": {"repobilityId": "5319ecc9e3326a83", "scanner": "scanner-primary", "fingerprint": "7fa86b85e947953d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js"}, "region": {"startLine": 573}}}]}, {"ruleId": "scanner-dc27d15bcfb4c78d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:1379"}, "properties": {"repobilityId": "f1c8b67786dfb4ec", "scanner": "scanner-primary", "fingerprint": "dc27d15bcfb4c78d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js"}, "region": {"startLine": 1379}}}]}, {"ruleId": "scanner-0cacd3b57fd7ffed", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:6153"}, "properties": {"repobilityId": "5ac97cd44a515eb4", "scanner": "scanner-primary", "fingerprint": "0cacd3b57fd7ffed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js"}, "region": {"startLine": 6153}}}]}, {"ruleId": "scanner-4ebad6911b7b1824", "level": "note", "message": {"text": "Insecure pattern 'document_write' in resources/plugins/jquery-validation-1.16.0/lib/jquery.js:25"}, "properties": {"repobilityId": "7b917bc35d82aebf", "scanner": "scanner-primary", "fingerprint": "4ebad6911b7b1824", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/jquery.js"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-46d4faa033d486d3", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in resources/plugins/jquery-validation-1.16.0/lib/require.js:36"}, "properties": {"repobilityId": "b8301205c96b51fb", "scanner": "scanner-primary", "fingerprint": "46d4faa033d486d3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/require.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-9016a70987261d62", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:523"}, "properties": {"repobilityId": "c3c2c183f6ac0ea2", "scanner": "scanner-primary", "fingerprint": "9016a70987261d62", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js"}, "region": {"startLine": 523}}}]}, {"ruleId": "scanner-f4b498a60e10b396", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:1260"}, "properties": {"repobilityId": "ae92507a04fd0c26", "scanner": "scanner-primary", "fingerprint": "f4b498a60e10b396", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js"}, "region": {"startLine": 1260}}}]}, {"ruleId": "scanner-7ebb3f6833d35d78", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:6091"}, "properties": {"repobilityId": "8a29afa18d958bbf", "scanner": "scanner-primary", "fingerprint": "7ebb3f6833d35d78", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js"}, "region": {"startLine": 6091}}}]}, {"ruleId": "scanner-c0740cf4ef8140d1", "level": "note", "message": {"text": "Insecure pattern 'document_write' in resources/plugins/jquery-validation-1.16.0/lib/jquery.mockjax.js:25"}, "properties": {"repobilityId": "40a95d884851aba8", "scanner": "scanner-primary", "fingerprint": "c0740cf4ef8140d1", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/jquery.mockjax.js"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-fd64d7905ce87ce3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.11.1.js:1103"}, "properties": {"repobilityId": "f4a6aa0e86c3d62d", "scanner": "scanner-primary", "fingerprint": "fd64d7905ce87ce3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/jquery-1.11.1.js"}, "region": {"startLine": 1103}}}]}, {"ruleId": "scanner-34ed7990e4dccc48", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.11.1.js:5447"}, "properties": {"repobilityId": "7a0ea93cceaedce0", "scanner": "scanner-primary", "fingerprint": "34ed7990e4dccc48", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/jquery-1.11.1.js"}, "region": {"startLine": 5447}}}]}, {"ruleId": "scanner-da1039dc08763022", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js:1293"}, "properties": {"repobilityId": "96b0c11b03795c21", "scanner": "scanner-primary", "fingerprint": "da1039dc08763022", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js"}, "region": {"startLine": 1293}}}]}, {"ruleId": "scanner-5240166d88e5e3da", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/design-spec-gen.mjs:22"}, "properties": {"repobilityId": "222fe50a9b5475df", "scanner": "scanner-primary", "fingerprint": "5240166d88e5e3da", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/design-spec-gen.mjs"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-8a75bd3728771e01", "level": "error", "message": {"text": "Possible secret in scripts/deploy-wave-z2-integracao-vendas-oficina.sh"}, "properties": {"repobilityId": "f155b1e11e80679b", "scanner": "scanner-primary", "fingerprint": "8a75bd3728771e01", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/deploy-wave-z2-integracao-vendas-oficina.sh"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-2eeeee37bd37a057", "level": "error", "message": {"text": "Possible secret in scripts/financial_snapshot.py"}, "properties": {"repobilityId": "efc1e62641df15d1", "scanner": "scanner-primary", "fingerprint": "2eeeee37bd37a057", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/financial_snapshot.py"}, "region": {"startLine": 83}}}]}, {"ruleId": "scanner-c69d04c714d1aea3", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/ds-report.mjs:21"}, "properties": {"repobilityId": "e62806d3b55c8c24", "scanner": "scanner-primary", "fingerprint": "c69d04c714d1aea3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/ds-report.mjs"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-15eb7938fee62bfd", "level": "error", "message": {"text": "Possible secret in scripts/probe_equipamento.py"}, "properties": {"repobilityId": "109c19c89b61d0c6", "scanner": "scanner-primary", "fingerprint": "15eb7938fee62bfd", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/probe_equipamento.py"}, "region": {"startLine": 100}}}]}, {"ruleId": "scanner-f38745910736cfe8", "level": "error", "message": {"text": "Possible secret in scripts/probe_aliases.py"}, "properties": {"repobilityId": "b7277c24f3de71c2", "scanner": "scanner-primary", "fingerprint": "f38745910736cfe8", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/probe_aliases.py"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-098fe095635b3834", "level": "error", "message": {"text": "Possible secret in scripts/probe_inadimplencia.py"}, "properties": {"repobilityId": "b603630321345664", "scanner": "scanner-primary", "fingerprint": "098fe095635b3834", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/probe_inadimplencia.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-7966f0429014e37f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/casos-coverage-guard.mjs:51"}, "properties": {"repobilityId": "f920e5e5382ed683", "scanner": "scanner-primary", "fingerprint": "7966f0429014e37f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/casos-coverage-guard.mjs"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-9e96379c78d9e7fc", "level": "error", "message": {"text": "Possible secret in scripts/probe_configuracoes_grid_blob.py"}, "properties": {"repobilityId": "e9184c3f1321f0e4", "scanner": "scanner-primary", "fingerprint": "9e96379c78d9e7fc", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/probe_configuracoes_grid_blob.py"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-6dc66bb8716f548a", "level": "error", "message": {"text": "Possible secret in scripts/sells_grade_heatmap.py"}, "properties": {"repobilityId": "3790af2cce718322", "scanner": "scanner-primary", "fingerprint": "6dc66bb8716f548a", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sells_grade_heatmap.py"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-f0e294f49e5b8d41", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/ds-ledger.mjs:46"}, "properties": {"repobilityId": "a3ebd149abd19663", "scanner": "scanner-primary", "fingerprint": "f0e294f49e5b8d41", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/ds-ledger.mjs"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-de670d45e9aabbfa", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/eslint-baseline.mjs:13"}, "properties": {"repobilityId": "77b430b0539a98cd", "scanner": "scanner-primary", "fingerprint": "de670d45e9aabbfa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/eslint-baseline.mjs"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-67ae77cf0d8113de", "level": "error", "message": {"text": "Possible secret in scripts/probe_configuracoes_grid.py"}, "properties": {"repobilityId": "6c9c195e70ddcdb2", "scanner": "scanner-primary", "fingerprint": "67ae77cf0d8113de", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/probe_configuracoes_grid.py"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-1d61bbee02857ffc", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in scripts/jana-ragas-runner.py:170"}, "properties": {"repobilityId": "dbce63a2a097059a", "scanner": "scanner-primary", "fingerprint": "1d61bbee02857ffc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/jana-ragas-runner.py"}, "region": {"startLine": 170}}}]}, {"ruleId": "scanner-6fb8c1ea78da931c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/reuse-index.mjs:31"}, "properties": {"repobilityId": "1aec9898b4642d31", "scanner": "scanner-primary", "fingerprint": "6fb8c1ea78da931c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/reuse-index.mjs"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-707dee216bc447d7", "level": "error", "message": {"text": "Possible secret in scripts/probe_venda_equip_link.py"}, "properties": {"repobilityId": "1edda4f25244d001", "scanner": "scanner-primary", "fingerprint": "707dee216bc447d7", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/probe_venda_equip_link.py"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-215d3398de6b3541", "level": "error", "message": {"text": "Possible secret in scripts/probe_veiculo.py"}, "properties": {"repobilityId": "92ba945f229952a7", "scanner": "scanner-primary", "fingerprint": "215d3398de6b3541", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/probe_veiculo.py"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-28434de755f1ab88", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/governance/protection-drift.mjs:32"}, "properties": {"repobilityId": "a93abf4af23300e8", "scanner": "scanner-primary", "fingerprint": "28434de755f1ab88", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/governance/protection-drift.mjs"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-258957b9330d3f5d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/governance/knowledge-drift.mjs:23"}, "properties": {"repobilityId": "b37cb67bc22535b8", "scanner": "scanner-primary", "fingerprint": "258957b9330d3f5d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/governance/knowledge-drift.mjs"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-fd8c5512ed39d159", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/governance/ghost-fix.test.mjs:7"}, "properties": {"repobilityId": "af89e406d78f8081", "scanner": "scanner-primary", "fingerprint": "fd8c5512ed39d159", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/governance/ghost-fix.test.mjs"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-1d776c931e604dc9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/governance/sdd-scorecard.mjs:28"}, "properties": {"repobilityId": "ad07d754841dc809", "scanner": "scanner-primary", "fingerprint": "1d776c931e604dc9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/governance/sdd-scorecard.mjs"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-2c4d19c70ab3eb30", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/governance/gate-selftest.mjs:25"}, "properties": {"repobilityId": "0796379707af16c6", "scanner": "scanner-primary", "fingerprint": "2c4d19c70ab3eb30", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/governance/gate-selftest.mjs"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-e70004176f2a8ad1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/governance/memory-health.mjs:33"}, "properties": {"repobilityId": "db29878a51118506", "scanner": "scanner-primary", "fingerprint": "e70004176f2a8ad1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/governance/memory-health.mjs"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-e6982c7da1557b00", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/governance/ledger-check.mjs:20"}, "properties": {"repobilityId": "7075092094664d30", "scanner": "scanner-primary", "fingerprint": "e6982c7da1557b00", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/governance/ledger-check.mjs"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-784744d49553b889", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/qa/screen-grades-ratchet.mjs:26"}, "properties": {"repobilityId": "bf238538f3f43f6c", "scanner": "scanner-primary", "fingerprint": "784744d49553b889", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa/screen-grades-ratchet.mjs"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-5a29fd8775ac147f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/curador/apply.mjs:16"}, "properties": {"repobilityId": "fbd925a836fa345d", "scanner": "scanner-primary", "fingerprint": "5a29fd8775ac147f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/curador/apply.mjs"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-35ddce87ccae1a41", "level": "error", "message": {"text": "Possible secret in scripts/legacy-migration/migrar-martinho.py"}, "properties": {"repobilityId": "31d197d1534d1e7e", "scanner": "scanner-primary", "fingerprint": "35ddce87ccae1a41", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy-migration/migrar-martinho.py"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-8cacd46e4e3fb078", "level": "error", "message": {"text": "Possible secret in scripts/legacy-migration/migrar-tudo.py"}, "properties": {"repobilityId": "91ecaa1fdf1b8b54", "scanner": "scanner-primary", "fingerprint": "8cacd46e4e3fb078", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy-migration/migrar-tudo.py"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-5843dfb00190ee58", "level": "error", "message": {"text": "Possible secret in scripts/legacy-migration/daemon-sync-martinho.py"}, "properties": {"repobilityId": "92b2cf779689241d", "scanner": "scanner-primary", "fingerprint": "5843dfb00190ee58", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy-migration/daemon-sync-martinho.py"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-fe0122bcfe02bb8c", "level": "error", "message": {"text": "Possible secret in scripts/legacy-migration/sql-wr2-pessoas/gerar-sql-cobrancas-boletos-firebird.py"}, "properties": {"repobilityId": "982d6d7793d54dc3", "scanner": "scanner-primary", "fingerprint": "fe0122bcfe02bb8c", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy-migration/sql-wr2-pessoas/gerar-sql-cobrancas-boletos-firebird.py"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-62ea38403692ebc5", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/dual-brain/smoke-e2e.js:8"}, "properties": {"repobilityId": "68c83f9bbc97c556", "scanner": "scanner-primary", "fingerprint": "62ea38403692ebc5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dual-brain/smoke-e2e.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-da44fa0d325eb869", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in scripts/dual-brain/watchers/git-watcher.js:17"}, "properties": {"repobilityId": "e6eea8668d71bd00", "scanner": "scanner-primary", "fingerprint": "da44fa0d325eb869", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dual-brain/watchers/git-watcher.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-04fcc697fdc13a16", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/dual-brain/watchers/git-watcher.js:6"}, "properties": {"repobilityId": "e7f8e772b7027263", "scanner": "scanner-primary", "fingerprint": "04fcc697fdc13a16", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dual-brain/watchers/git-watcher.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-22071c0d5d4fada0", "level": "note", "message": {"text": "Insecure pattern 'document_write' in doc/assets/frontend/default/js/tinymce.min.js:2"}, "properties": {"repobilityId": "707a6a85fe15c46c", "scanner": "scanner-primary", "fingerprint": "22071c0d5d4fada0", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "doc/assets/frontend/default/js/tinymce.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-88dae5649f0bd8e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/frontend/default/js/tinymce.min.js:2"}, "properties": {"repobilityId": "0d82d7681579c724", "scanner": "scanner-primary", "fingerprint": "88dae5649f0bd8e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "doc/assets/frontend/default/js/tinymce.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-7c4fa53ef3f2fa00", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in doc/assets/frontend/default/js/tinymce.min.js:2"}, "properties": {"repobilityId": "867e0fe418ee2942", "scanner": "scanner-primary", "fingerprint": "7c4fa53ef3f2fa00", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "doc/assets/frontend/default/js/tinymce.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-126f91bbe94d1462", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/frontend/default/js/jwplayer.js:2"}, "properties": {"repobilityId": "d5b26dded83b0553", "scanner": "scanner-primary", "fingerprint": "126f91bbe94d1462", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "doc/assets/frontend/default/js/jwplayer.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-21a5628ed727f1a1", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in doc/assets/frontend/default/js/jwplayer.js:3"}, "properties": {"repobilityId": "f24ed3ccf6986af9", "scanner": "scanner-primary", "fingerprint": "21a5628ed727f1a1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "doc/assets/frontend/default/js/jwplayer.js"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-91dea78bb0636fdc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/global/plyr/plyr.js:1"}, "properties": {"repobilityId": "e2bc51e1f409e90c", "scanner": "scanner-primary", "fingerprint": "91dea78bb0636fdc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "doc/assets/global/plyr/plyr.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-60708a1bf1d73050", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/login/jquery-3.3.1.min.js:2"}, "properties": {"repobilityId": "c10e1ace185b0d01", "scanner": "scanner-primary", "fingerprint": "60708a1bf1d73050", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "doc/assets/backend/login/jquery-3.3.1.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-acabddaa9dcd3a37", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/app.min.js:1"}, "properties": {"repobilityId": "084d2e09718d7fa8", "scanner": "scanner-primary", "fingerprint": "acabddaa9dcd3a37", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "doc/assets/backend/js/app.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-52498d3e11f2e31e", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in doc/assets/backend/js/app.min.js:1"}, "properties": {"repobilityId": "816c8459360ff597", "scanner": "scanner-primary", "fingerprint": "52498d3e11f2e31e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "doc/assets/backend/js/app.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ef55928a0c68bda1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/app.js:1248"}, "properties": {"repobilityId": "842edea526df2a1e", "scanner": "scanner-primary", "fingerprint": "ef55928a0c68bda1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "doc/assets/backend/js/app.js"}, "region": {"startLine": 1248}}}]}, {"ruleId": "scanner-cf68797ca7d1ca86", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in doc/assets/backend/js/app.js:15646"}, "properties": {"repobilityId": "1bebf06605707106", "scanner": "scanner-primary", "fingerprint": "cf68797ca7d1ca86", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "doc/assets/backend/js/app.js"}, "region": {"startLine": 15646}}}]}, {"ruleId": "scanner-78d5996a91c2954b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/jquery-3.3.1.min.js:2"}, "properties": {"repobilityId": "1e159f3b29e610ec", "scanner": "scanner-primary", "fingerprint": "78d5996a91c2954b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "doc/assets/backend/js/jquery-3.3.1.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-f5f1c75845795380", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/font-awesome-icon-picker/fontawesome-four-iconpicker.min.js:1"}, "properties": {"repobilityId": "af9b1d6da5d920dc", "scanner": "scanner-primary", "fingerprint": "f5f1c75845795380", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "doc/assets/backend/js/font-awesome-icon-picker/fontawesome-four-iconpicker.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5169be8d089d82bb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in doc/assets/backend/js/font-awesome-icon-picker/fontawesome-iconpicker.min.js:20"}, "properties": {"repobilityId": "043d19ed63704b01", "scanner": "scanner-primary", "fingerprint": "5169be8d089d82bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "doc/assets/backend/js/font-awesome-icon-picker/fontawesome-iconpicker.min.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-9a74cacd17e76c48", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screen-grade-board.html:71"}, "properties": {"repobilityId": "678322b45785ceaa", "scanner": "scanner-primary", "fingerprint": "9a74cacd17e76c48", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/governance/scorecards/screen-grade-board.html"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-c3f2f6d5cc1f7573", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in memory/governance/scorecards/screen-grade-board.html:88"}, "properties": {"repobilityId": "45f7044fc0469dbb", "scanner": "scanner-primary", "fingerprint": "c3f2f6d5cc1f7573", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/governance/scorecards/screen-grade-board.html"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-33d46a2af420660a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screen-grades-baseline-2026-05-30.json:344"}, "properties": {"repobilityId": "40fb68b4b6f526e9", "scanner": "scanner-primary", "fingerprint": "33d46a2af420660a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/governance/scorecards/screen-grades-baseline-2026-05-30.json"}, "region": {"startLine": 344}}}]}, {"ruleId": "scanner-13ca94306b3e639d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/oficinaauto-serviceorders-index.yaml:25"}, "properties": {"repobilityId": "b9fdd544a3df2e45", "scanner": "scanner-primary", "fingerprint": "13ca94306b3e639d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/governance/scorecards/screens/oficinaauto-serviceorders-index.yaml"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-5d8845cc2566be60", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/financeiro-dashboard-index.yaml:15"}, "properties": {"repobilityId": "a889c4db01502d2a", "scanner": "scanner-primary", "fingerprint": "5d8845cc2566be60", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/governance/scorecards/screens/financeiro-dashboard-index.yaml"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-fc6df3e2f574b660", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/transactionpayment-show.yaml:20"}, "properties": {"repobilityId": "70fdec8bd595b13a", "scanner": "scanner-primary", "fingerprint": "fc6df3e2f574b660", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/governance/scorecards/screens/transactionpayment-show.yaml"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-bb7636cca283b254", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/site-blogpost.yaml:15"}, "properties": {"repobilityId": "a813c2b3cc12ed47", "scanner": "scanner-primary", "fingerprint": "bb7636cca283b254", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/governance/scorecards/screens/site-blogpost.yaml"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-1186ce182444a815", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/essentials-knowledge-show.yaml:20"}, "properties": {"repobilityId": "9cd383be55d413d1", "scanner": "scanner-primary", "fingerprint": "1186ce182444a815", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/governance/scorecards/screens/essentials-knowledge-show.yaml"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-fc207c241b994bdd", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/transactionpayment-index.yaml:30"}, "properties": {"repobilityId": "f23d3804e5c1a84e", "scanner": "scanner-primary", "fingerprint": "fc207c241b994bdd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/governance/scorecards/screens/transactionpayment-index.yaml"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-b730622b2406aab0", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/essentials-messages-index.yaml:20"}, "properties": {"repobilityId": "adc263488058096f", "scanner": "scanner-primary", "fingerprint": "b730622b2406aab0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/governance/scorecards/screens/essentials-messages-index.yaml"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-2f9c0c99e5bfd14d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/essentials-todo-show.yaml:15"}, "properties": {"repobilityId": "84fc7319e93e0f7a", "scanner": "scanner-primary", "fingerprint": "2f9c0c99e5bfd14d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/governance/scorecards/screens/essentials-todo-show.yaml"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-f566f99c1616667f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/site-page.yaml:15"}, "properties": {"repobilityId": "c7ff089c087c5303", "scanner": "scanner-primary", "fingerprint": "f566f99c1616667f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/governance/scorecards/screens/site-page.yaml"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-0d311f684b94b580", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/governance/scorecards/screens/essentials-knowledge-index.yaml:25"}, "properties": {"repobilityId": "e26546f2681e9503", "scanner": "scanner-primary", "fingerprint": "0d311f684b94b580", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/governance/scorecards/screens/essentials-knowledge-index.yaml"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-7b041742974bd4f3", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/governance-eval/grade.mjs:13"}, "properties": {"repobilityId": "22a3e34be0f09fc1", "scanner": "scanner-primary", "fingerprint": "7b041742974bd4f3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/governance-eval/grade.mjs"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-3ca90fafb96189a5", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/git-base-freshness-guard.mjs:34"}, "properties": {"repobilityId": "79f4cddc924e64fd", "scanner": "scanner-primary", "fingerprint": "3ca90fafb96189a5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/hooks/git-base-freshness-guard.mjs"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-4226b2d7f66d6821", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/block-askq-execution-menu.test.mjs:3"}, "properties": {"repobilityId": "9a3c7c226f85df38", "scanner": "scanner-primary", "fingerprint": "4226b2d7f66d6821", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/hooks/block-askq-execution-menu.test.mjs"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-78969efec4ef4af4", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/git-base-freshness-guard.test.mjs:13"}, "properties": {"repobilityId": "fb22ce3ed9ccc73d", "scanner": "scanner-primary", "fingerprint": "78969efec4ef4af4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/hooks/git-base-freshness-guard.test.mjs"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-7dbe1916867e7c41", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/block-pr-without-approval.test.mjs:15"}, "properties": {"repobilityId": "e4552b8cf5829ca2", "scanner": "scanner-primary", "fingerprint": "7dbe1916867e7c41", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/hooks/block-pr-without-approval.test.mjs"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-085fb937bede0bd3", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/design-handoff-reprocess.test.mjs:15"}, "properties": {"repobilityId": "9f3756f7cef548f4", "scanner": "scanner-primary", "fingerprint": "085fb937bede0bd3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/hooks/design-handoff-reprocess.test.mjs"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-f77cec136ad1de8b", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in .claude/workflows/sdd-fase-1.js:77"}, "properties": {"repobilityId": "cb801f04255284c1", "scanner": "scanner-primary", "fingerprint": "f77cec136ad1de8b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/workflows/sdd-fase-1.js"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-a2307df01f096ac2", "level": "error", "message": {"text": "Possible secret in .claude/skills/criar-modulo/SKILL.md"}, "properties": {"repobilityId": "6a47d7f4f4659495", "scanner": "scanner-primary", "fingerprint": "a2307df01f096ac2", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/criar-modulo/SKILL.md"}, "region": {"startLine": 169}}}]}, {"ruleId": "scanner-cc654564c5aac521", "level": "error", "message": {"text": "Possible secret in .claude/skills/officeimpresso-financial-snapshot/SKILL.md"}, "properties": {"repobilityId": "dde9418e7c3ac8eb", "scanner": "scanner-primary", "fingerprint": "cc654564c5aac521", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/officeimpresso-financial-snapshot/SKILL.md"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-fb1c8bb749ccd538", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell-v2/mockup-pages.jsx:18"}, "properties": {"repobilityId": "b70cfa84b90d5a0e", "scanner": "scanner-primary", "fingerprint": "fb1c8bb749ccd538", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/cowork-preview/erp-shell-v2/mockup-pages.jsx"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-11f6ef50e49d180f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Product Picker Mecanica.html:288"}, "properties": {"repobilityId": "83e935f0bdaa5298", "scanner": "scanner-primary", "fingerprint": "11f6ef50e49d180f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/cowork-preview/erp-shell-v2/Product Picker Mecanica.html"}, "region": {"startLine": 288}}}]}, {"ruleId": "scanner-ad970076af321f82", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Venda por Estagio FSM v1.html:321"}, "properties": {"repobilityId": "9d7d74d716e318d7", "scanner": "scanner-primary", "fingerprint": "ad970076af321f82", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/cowork-preview/erp-shell-v2/Venda por Estagio FSM v1.html"}, "region": {"startLine": 321}}}]}, {"ruleId": "scanner-f983dce5c799448d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Venda Simples F1.html:185"}, "properties": {"repobilityId": "e23c76a141c3749d", "scanner": "scanner-primary", "fingerprint": "f983dce5c799448d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/cowork-preview/erp-shell-v2/Venda Simples F1.html"}, "region": {"startLine": 185}}}]}, {"ruleId": "scanner-9d80dc41f72f2c23", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Venda por Estagio FSM.html:425"}, "properties": {"repobilityId": "7b0e7393883fed8c", "scanner": "scanner-primary", "fingerprint": "9d80dc41f72f2c23", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/cowork-preview/erp-shell-v2/Venda por Estagio FSM.html"}, "region": {"startLine": 425}}}]}, {"ruleId": "scanner-f06870baec519db6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork-preview/erp-shell-v2/Product Picker.html:177"}, "properties": {"repobilityId": "951710fe7435f5f7", "scanner": "scanner-primary", "fingerprint": "f06870baec519db6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/cowork-preview/erp-shell-v2/Product Picker.html"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-9b4e1b07caa06d41", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell/mockup-pages.jsx:18"}, "properties": {"repobilityId": "221357157f26a924", "scanner": "scanner-primary", "fingerprint": "9b4e1b07caa06d41", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/cowork-preview/erp-shell/mockup-pages.jsx"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-ce7e67d8551dedf3", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell/kb-page.jsx:1237"}, "properties": {"repobilityId": "01920127ef77a070", "scanner": "scanner-primary", "fingerprint": "ce7e67d8551dedf3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/cowork-preview/erp-shell/kb-page.jsx"}, "region": {"startLine": 1237}}}]}, {"ruleId": "scanner-7d9b5cc3b50fc766", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell/inbox-v2-ai.jsx:112"}, "properties": {"repobilityId": "4723489444a8b1c4", "scanner": "scanner-primary", "fingerprint": "7d9b5cc3b50fc766", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/cowork-preview/erp-shell/inbox-v2-ai.jsx"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-4f24347b3733b7a3", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/cowork-preview/erp-shell/kb-extras.jsx:137"}, "properties": {"repobilityId": "6db4f8dadb511944", "scanner": "scanner-primary", "fingerprint": "4f24347b3733b7a3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/cowork-preview/erp-shell/kb-extras.jsx"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-0cfbaeea1ae6af1b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/prototipos/kb/kb-page.jsx:1237"}, "properties": {"repobilityId": "24fb21b51e10ad30", "scanner": "scanner-primary", "fingerprint": "0cfbaeea1ae6af1b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/prototipos/kb/kb-page.jsx"}, "region": {"startLine": 1237}}}]}, {"ruleId": "scanner-7f167a6e8106a85a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/prototipos/kb/index.html:101"}, "properties": {"repobilityId": "8c788be55c017568", "scanner": "scanner-primary", "fingerprint": "7f167a6e8106a85a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/prototipos/kb/index.html"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-ac3375bf53d55a22", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/prototipos/kb/kb-extras.jsx:137"}, "properties": {"repobilityId": "4fb5d6f990200821", "scanner": "scanner-primary", "fingerprint": "ac3375bf53d55a22", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/prototipos/kb/kb-extras.jsx"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-b9de2a1a488b3ab1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in oimpresso_designer_view/index.html:759"}, "properties": {"repobilityId": "8f24335405886882", "scanner": "scanner-primary", "fingerprint": "b9de2a1a488b3ab1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "oimpresso_designer_view/index.html"}, "region": {"startLine": 759}}}]}, {"ruleId": "scanner-230806e8935e45d2", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in .github/workflows/jana-ragas-gate.yml:143"}, "properties": {"repobilityId": "c5cca3eada3bb822", "scanner": "scanner-primary", "fingerprint": "230806e8935e45d2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-ragas-gate.yml"}, "region": {"startLine": 143}}}]}, {"ruleId": "scanner-53758bda67d2910d", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "397f4187840dab46", "scanner": "scanner-primary", "fingerprint": "53758bda67d2910d", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/multi-tenant-gate.yml"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-53758bda67d2910d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6c5b5582aab274b0", "scanner": "scanner-primary", "fingerprint": "53758bda67d2910d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/multi-tenant-gate.yml"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-db62436edafb01bd", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9dd278d3bcbdd9f1", "scanner": "scanner-primary", "fingerprint": "db62436edafb01bd", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/eslint-gate.yml"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-62d854eb4fd9c4c4", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "cafbd5af8862b945", "scanner": "scanner-primary", "fingerprint": "62d854eb4fd9c4c4", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/governance-gate.yml"}, "region": {"startLine": 211}}}]}, {"ruleId": "scanner-62d854eb4fd9c4c4", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1b791e54899cbb22", "scanner": "scanner-primary", "fingerprint": "62d854eb4fd9c4c4", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/governance-gate.yml"}, "region": {"startLine": 309}}}]}, {"ruleId": "scanner-561aa034fa8143dc", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8b8110cd849db9b5", "scanner": "scanner-primary", "fingerprint": "561aa034fa8143dc", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/tier0-guards-advisory.yml"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-561aa034fa8143dc", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "22dfeaaff05430a1", "scanner": "scanner-primary", "fingerprint": "561aa034fa8143dc", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/tier0-guards-advisory.yml"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-ddd4a7b552e603da", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ea0147b86df63f74", "scanner": "scanner-primary", "fingerprint": "ddd4a7b552e603da", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/scorer-sync-gate.yml"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-624f9daea8132587", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c0bedc86b00925b3", "scanner": "scanner-primary", "fingerprint": "624f9daea8132587", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/memory-schema-gate-extended.yml"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-624f9daea8132587", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1a960ce5190dfe09", "scanner": "scanner-primary", "fingerprint": "624f9daea8132587", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/memory-schema-gate-extended.yml"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-624f9daea8132587", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "395d714e34230ad0", "scanner": "scanner-primary", "fingerprint": "624f9daea8132587", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/memory-schema-gate-extended.yml"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-624f9daea8132587", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c0bedc86b00925b3", "scanner": "scanner-primary", "fingerprint": "624f9daea8132587", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/memory-schema-gate-extended.yml"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-624f9daea8132587", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1a960ce5190dfe09", "scanner": "scanner-primary", "fingerprint": "624f9daea8132587", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/memory-schema-gate-extended.yml"}, "region": {"startLine": 176}}}]}, {"ruleId": "scanner-624f9daea8132587", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "395d714e34230ad0", "scanner": "scanner-primary", "fingerprint": "624f9daea8132587", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/memory-schema-gate-extended.yml"}, "region": {"startLine": 184}}}]}, {"ruleId": "scanner-624f9daea8132587", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c0bedc86b00925b3", "scanner": "scanner-primary", "fingerprint": "624f9daea8132587", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/memory-schema-gate-extended.yml"}, "region": {"startLine": 223}}}]}, {"ruleId": "scanner-624f9daea8132587", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1a960ce5190dfe09", "scanner": "scanner-primary", "fingerprint": "624f9daea8132587", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/memory-schema-gate-extended.yml"}, "region": {"startLine": 260}}}]}, {"ruleId": "scanner-624f9daea8132587", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "395d714e34230ad0", "scanner": "scanner-primary", "fingerprint": "624f9daea8132587", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/memory-schema-gate-extended.yml"}, "region": {"startLine": 268}}}]}, {"ruleId": "scanner-4da4dc47dd960608", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3f9879bb5d7bd32f", "scanner": "scanner-primary", "fingerprint": "4da4dc47dd960608", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-ragas-canary.yml"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-4da4dc47dd960608", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f8e404e8b43117b8", "scanner": "scanner-primary", "fingerprint": "4da4dc47dd960608", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-ragas-canary.yml"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-4da4dc47dd960608", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "698c263f4ed1beba", "scanner": "scanner-primary", "fingerprint": "4da4dc47dd960608", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-ragas-canary.yml"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-4da4dc47dd960608", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ebd8156bc4d9493f", "scanner": "scanner-primary", "fingerprint": "4da4dc47dd960608", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-ragas-canary.yml"}, "region": {"startLine": 240}}}]}, {"ruleId": "scanner-4da4dc47dd960608", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a850da4fae41e3cd", "scanner": "scanner-primary", "fingerprint": "4da4dc47dd960608", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-ragas-canary.yml"}, "region": {"startLine": 274}}}]}, {"ruleId": "scanner-667fd54f467e3276", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b9a73faa29dc986b", "scanner": "scanner-primary", "fingerprint": "667fd54f467e3276", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-ragas-canary.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-792a2343dff052c2", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c789e2bd81e432e0", "scanner": "scanner-primary", "fingerprint": "792a2343dff052c2", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/modules-pest.yml"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-792a2343dff052c2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "afd32465959211c5", "scanner": "scanner-primary", "fingerprint": "792a2343dff052c2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/modules-pest.yml"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-6d83dfd660d20512", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e3eafd077de0faf3", "scanner": "scanner-primary", "fingerprint": "6d83dfd660d20512", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-pest.yml"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-6d83dfd660d20512", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8e1c2dab54f56799", "scanner": "scanner-primary", "fingerprint": "6d83dfd660d20512", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-pest.yml"}, "region": {"startLine": 122}}}]}, {"ruleId": "scanner-3c55de9111e47fcc", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "6f23b9a1c3923b88", "scanner": "scanner-primary", "fingerprint": "3c55de9111e47fcc", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/cowork-inbox.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cde38146af37f687", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b35072b47735d266", "scanner": "scanner-primary", "fingerprint": "cde38146af37f687", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ui-architecture-gate.yml"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-cde38146af37f687", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a2758aa9ff0335ea", "scanner": "scanner-primary", "fingerprint": "cde38146af37f687", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ui-architecture-gate.yml"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-e138ce726376b415", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f5674961f590da83", "scanner": "scanner-primary", "fingerprint": "e138ce726376b415", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ui-lint.yml"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-e138ce726376b415", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f81ccc7627c11530", "scanner": "scanner-primary", "fingerprint": "e138ce726376b415", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ui-lint.yml"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-74a455ad39c1088f", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "abc330a5adc035f7", "scanner": "scanner-primary", "fingerprint": "74a455ad39c1088f", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/financeiro-pest.yml"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-74a455ad39c1088f", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "21f7c04cbc94b4db", "scanner": "scanner-primary", "fingerprint": "74a455ad39c1088f", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/financeiro-pest.yml"}, "region": {"startLine": 143}}}]}, {"ruleId": "scanner-265b69f80d74f8f4", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f0d28edbd9a506e0", "scanner": "scanner-primary", "fingerprint": "265b69f80d74f8f4", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ds-canon-color-guard.yml"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-41fec1000258bce1", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d85f9f8d063a93eb", "scanner": "scanner-primary", "fingerprint": "41fec1000258bce1", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/dominio-gate.yml"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-53746b36e642b9e3", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9ef7db35979092d6", "scanner": "scanner-primary", "fingerprint": "53746b36e642b9e3", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/a11y-gate.yml"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-f3ac460a7f61f1be", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3ab1cd695060da50", "scanner": "scanner-primary", "fingerprint": "f3ac460a7f61f1be", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/module-grades-gate.yml"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-f3ac460a7f61f1be", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a037619be68c5d65", "scanner": "scanner-primary", "fingerprint": "f3ac460a7f61f1be", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/module-grades-gate.yml"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-f3ac460a7f61f1be", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ec8bb8ed42e1eeab", "scanner": "scanner-primary", "fingerprint": "f3ac460a7f61f1be", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/module-grades-gate.yml"}, "region": {"startLine": 251}}}]}, {"ruleId": "scanner-f3ac460a7f61f1be", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ec8bb8ed42e1eeab", "scanner": "scanner-primary", "fingerprint": "f3ac460a7f61f1be", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/module-grades-gate.yml"}, "region": {"startLine": 440}}}]}, {"ruleId": "scanner-d5501bae06ff5578", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "54bf7ce27f04cf24", "scanner": "scanner-primary", "fingerprint": "d5501bae06ff5578", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/memory-schema-gate.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-d5501bae06ff5578", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "effa786b1ebf090b", "scanner": "scanner-primary", "fingerprint": "d5501bae06ff5578", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/memory-schema-gate.yml"}, "region": {"startLine": 199}}}]}, {"ruleId": "scanner-d5501bae06ff5578", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "cdde0eb6e26fb157", "scanner": "scanner-primary", "fingerprint": "d5501bae06ff5578", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/memory-schema-gate.yml"}, "region": {"startLine": 207}}}]}, {"ruleId": "scanner-fd8b681c546cc8bb", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8d703ad57627ed0c", "scanner": "scanner-primary", "fingerprint": "fd8b681c546cc8bb", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/casos-gate.yml"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-c2510bc7fd22588d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4eda06136165fa25", "scanner": "scanner-primary", "fingerprint": "c2510bc7fd22588d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/a11y-axe-gate.yml"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bee6b8956e03198c", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "253c1285516d15dc", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2d1c807dcf85dd93", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 122}}}]}, {"ruleId": "scanner-ca52a4398c0d8fad", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f17b487a39d7691c", "scanner": "scanner-primary", "fingerprint": "ca52a4398c0d8fad", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/adr-lint.yml"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-ca52a4398c0d8fad", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3611d61d0d86d2b3", "scanner": "scanner-primary", "fingerprint": "ca52a4398c0d8fad", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/adr-lint.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9df8e08a95a059d9", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "54c8f1b47dd62535", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bd7f3c1c34d83159", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 139}}}]}, {"ruleId": "scanner-50f071370e9c1cb2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d46b80788c13506d", "scanner": "scanner-primary", "fingerprint": "50f071370e9c1cb2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/conformance-gate.yml"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-547f0e6978026dd5", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0a90b23b78d410c7", "scanner": "scanner-primary", "fingerprint": "547f0e6978026dd5", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/phpstan-gate.yml"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-547f0e6978026dd5", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9cc9ed0970234626", "scanner": "scanner-primary", "fingerprint": "547f0e6978026dd5", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/phpstan-gate.yml"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-547f0e6978026dd5", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9cc9ed0970234626", "scanner": "scanner-primary", "fingerprint": "547f0e6978026dd5", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/phpstan-gate.yml"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-93b5dc94140a9b18", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "563704b954e48706", "scanner": "scanner-primary", "fingerprint": "93b5dc94140a9b18", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/visual-regression.yml"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-93b5dc94140a9b18", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9c808ca46ee1ae8e", "scanner": "scanner-primary", "fingerprint": "93b5dc94140a9b18", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/visual-regression.yml"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-93b5dc94140a9b18", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7dff0c6d1db51cd8", "scanner": "scanner-primary", "fingerprint": "93b5dc94140a9b18", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/visual-regression.yml"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-93b5dc94140a9b18", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c6c8d75f7857f7d4", "scanner": "scanner-primary", "fingerprint": "93b5dc94140a9b18", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/visual-regression.yml"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-93b5dc94140a9b18", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c6c8d75f7857f7d4", "scanner": "scanner-primary", "fingerprint": "93b5dc94140a9b18", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/visual-regression.yml"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-93b5dc94140a9b18", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "aa59201970110832", "scanner": "scanner-primary", "fingerprint": "93b5dc94140a9b18", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/visual-regression.yml"}, "region": {"startLine": 238}}}]}, {"ruleId": "scanner-93b5dc94140a9b18", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "aa59201970110832", "scanner": "scanner-primary", "fingerprint": "93b5dc94140a9b18", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/visual-regression.yml"}, "region": {"startLine": 247}}}]}, {"ruleId": "scanner-93b5dc94140a9b18", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "aa59201970110832", "scanner": "scanner-primary", "fingerprint": "93b5dc94140a9b18", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/visual-regression.yml"}, "region": {"startLine": 266}}}]}, {"ruleId": "scanner-93b5dc94140a9b18", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7e5f8739bd644eaf", "scanner": "scanner-primary", "fingerprint": "93b5dc94140a9b18", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/visual-regression.yml"}, "region": {"startLine": 274}}}]}, {"ruleId": "scanner-506c90e5627fa399", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "972353296cb7a6a0", "scanner": "scanner-primary", "fingerprint": "506c90e5627fa399", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/composer-lock-sync.yml"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-506c90e5627fa399", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1faab7929f153670", "scanner": "scanner-primary", "fingerprint": "506c90e5627fa399", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/composer-lock-sync.yml"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-506c90e5627fa399", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "156849243d4ca332", "scanner": "scanner-primary", "fingerprint": "506c90e5627fa399", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/composer-lock-sync.yml"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-448948e26b62567b", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "c6e43d31a126f999", "scanner": "scanner-primary", "fingerprint": "448948e26b62567b", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/composer-lock-sync.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-86cb5cd8310434b1", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "15800103a9ce216d", "scanner": "scanner-primary", "fingerprint": "86cb5cd8310434b1", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/no-mock-gate.yml"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-11312b9c0c728ec7", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "21d67a9c6af280ac", "scanner": "scanner-primary", "fingerprint": "11312b9c0c728ec7", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/layout-primitives-guard.yml"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-1f2a8482341fad52", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "14cee6e8fe825e44", "scanner": "scanner-primary", "fingerprint": "1f2a8482341fad52", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/components-tree-guard.yml"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-fe2254bbca714f3f", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "77c9430cd510d353", "scanner": "scanner-primary", "fingerprint": "fe2254bbca714f3f", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jscpd-gate.yml"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-b639f80738a9293c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8926254cec8b76cc", "scanner": "scanner-primary", "fingerprint": "b639f80738a9293c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/governance-drift.yml"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-b639f80738a9293c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8926254cec8b76cc", "scanner": "scanner-primary", "fingerprint": "b639f80738a9293c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/governance-drift.yml"}, "region": {"startLine": 143}}}]}, {"ruleId": "scanner-a589d2398c0c0655", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4a0ac3b85bba0b0b", "scanner": "scanner-primary", "fingerprint": "a589d2398c0c0655", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/scope-guard.yml"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-a589d2398c0c0655", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7580011f980f02d2", "scanner": "scanner-primary", "fingerprint": "a589d2398c0c0655", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/scope-guard.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-a589d2398c0c0655", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7b4d48a916128074", "scanner": "scanner-primary", "fingerprint": "a589d2398c0c0655", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/scope-guard.yml"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-45cede5166ad6fcc", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "58c1020f45449261", "scanner": "scanner-primary", "fingerprint": "45cede5166ad6fcc", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/mutation-gate.yml"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-45cede5166ad6fcc", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "cfee2369479c8a0d", "scanner": "scanner-primary", "fingerprint": "45cede5166ad6fcc", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/mutation-gate.yml"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-5403f451202ceec7", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d02f49022aaff592", "scanner": "scanner-primary", "fingerprint": "5403f451202ceec7", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/phpstan-baseline-regen.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-1b4aa409c6dad252", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "50009501c62456b1", "scanner": "scanner-primary", "fingerprint": "1b4aa409c6dad252", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/phpstan-baseline-regen.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-23df79c7c9901248", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a44212fb439db824", "scanner": "scanner-primary", "fingerprint": "23df79c7c9901248", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/design-index-gate.yml"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-23df79c7c9901248", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4f4cbee30338fb09", "scanner": "scanner-primary", "fingerprint": "23df79c7c9901248", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/design-index-gate.yml"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-bc88d55e7427e400", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a1257fc5072bae68", "scanner": "scanner-primary", "fingerprint": "bc88d55e7427e400", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-gate.yml"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-bc88d55e7427e400", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c0c3ab3b63ee1a47", "scanner": "scanner-primary", "fingerprint": "bc88d55e7427e400", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-gate.yml"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-bc88d55e7427e400", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3831aecdad25f4d5", "scanner": "scanner-primary", "fingerprint": "bc88d55e7427e400", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-gate.yml"}, "region": {"startLine": 117}}}]}, {"ruleId": "scanner-bc88d55e7427e400", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2631332d2e8b6434", "scanner": "scanner-primary", "fingerprint": "bc88d55e7427e400", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-gate.yml"}, "region": {"startLine": 204}}}]}, {"ruleId": "scanner-bc88d55e7427e400", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2631332d2e8b6434", "scanner": "scanner-primary", "fingerprint": "bc88d55e7427e400", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-gate.yml"}, "region": {"startLine": 212}}}]}, {"ruleId": "scanner-6ba44d219eaaafaa", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "26a1a808dfdbc0f1", "scanner": "scanner-primary", "fingerprint": "6ba44d219eaaafaa", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/design-spec-gate.yml"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-2741aa2144d9b69b", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c7aecbb3557fc5ab", "scanner": "scanner-primary", "fingerprint": "2741aa2144d9b69b", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/pageheader-gate.yml"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-e3dc604b8e09be42", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0954614359e347ec", "scanner": "scanner-primary", "fingerprint": "e3dc604b8e09be42", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/stylelint-gate.yml"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-24cc74ddff2810e6", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ecc0d7ad5e016dc6", "scanner": "scanner-primary", "fingerprint": "24cc74ddff2810e6", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/reuse-gate.yml"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-af2e9bc3a8133ef3", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "427b4c5e7ac7efb4", "scanner": "scanner-primary", "fingerprint": "af2e9bc3a8133ef3", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-ragas-gate.yml"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-af2e9bc3a8133ef3", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a74b875e7a485051", "scanner": "scanner-primary", "fingerprint": "af2e9bc3a8133ef3", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-ragas-gate.yml"}, "region": {"startLine": 100}}}]}, {"ruleId": "scanner-af2e9bc3a8133ef3", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "af9369dd87ac3ead", "scanner": "scanner-primary", "fingerprint": "af2e9bc3a8133ef3", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-ragas-gate.yml"}, "region": {"startLine": 161}}}]}, {"ruleId": "scanner-af2e9bc3a8133ef3", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "96db91d7291ea4ea", "scanner": "scanner-primary", "fingerprint": "af2e9bc3a8133ef3", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/jana-ragas-gate.yml"}, "region": {"startLine": 217}}}]}, {"ruleId": "scanner-7920442d4972825c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8fb27b2865d60b21", "scanner": "scanner-primary", "fingerprint": "7920442d4972825c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/css-size-gate.yml"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-69a2ce2c42a26503", "level": "note", "message": {"text": "Very large file: prototipo-ui/vendas-flow.jsx (1407 lines)"}, "properties": {"repobilityId": "6a09b62ce4ba3847", "scanner": "scanner-primary", "fingerprint": "69a2ce2c42a26503", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fd4d3cea131987a4", "level": "note", "message": {"text": "Very large file: prototipo-ui/vendas-page.jsx (1921 lines)"}, "properties": {"repobilityId": "46c87cbb708dfb15", "scanner": "scanner-primary", "fingerprint": "fd4d3cea131987a4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-06f9d019ae133757", "level": "note", "message": {"text": "Very large file: prototipo-ui/vendas-extras.jsx (1325 lines)"}, "properties": {"repobilityId": "2a0308416a950377", "scanner": "scanner-primary", "fingerprint": "06f9d019ae133757", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3358a5e028813273", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/boletos/cowork-app.jsx (946 lines)"}, "properties": {"repobilityId": "84f2bcca3724c8b3", "scanner": "scanner-primary", "fingerprint": "3358a5e028813273", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5df69e4d2a9c7833", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/components/pg-cobranca-page.jsx (996 lines)"}, "properties": {"repobilityId": "e82f63f470283b40", "scanner": "scanner-primary", "fingerprint": "5df69e4d2a9c7833", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4c8c4a4ced184117", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-page.jsx (1610 lines)"}, "properties": {"repobilityId": "b1869f379e74ce43", "scanner": "scanner-primary", "fingerprint": "4c8c4a4ced184117", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d3e8e28067fcf456", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-page.jsx (1537 lines)"}, "properties": {"repobilityId": "ecb73465ec059560", "scanner": "scanner-primary", "fingerprint": "d3e8e28067fcf456", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1c2dc880c9e110e0", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/financeiro-app.jsx (986 lines)"}, "properties": {"repobilityId": "3378c07a9c37552c", "scanner": "scanner-primary", "fingerprint": "1c2dc880c9e110e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-730cd07a06441eae", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-aplus.jsx (1093 lines)"}, "properties": {"repobilityId": "a7e42e8a4b0cea63", "scanner": "scanner-primary", "fingerprint": "730cd07a06441eae", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a03b2c7ec6900102", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/boleto-contas-app.jsx (946 lines)"}, "properties": {"repobilityId": "536cc9655427cd2b", "scanner": "scanner-primary", "fingerprint": "a03b2c7ec6900102", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-631e23f2776514ab", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/produto-app.jsx (1111 lines)"}, "properties": {"repobilityId": "3616c12e3f1b62c5", "scanner": "scanner-primary", "fingerprint": "631e23f2776514ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8c449d04622fd067", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-extras.jsx (1269 lines)"}, "properties": {"repobilityId": "53cb9d4c3e4bfe55", "scanner": "scanner-primary", "fingerprint": "8c449d04622fd067", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e367d301225849ad", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-page.jsx (1141 lines)"}, "properties": {"repobilityId": "a1d94d5e703fb689", "scanner": "scanner-primary", "fingerprint": "e367d301225849ad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3bcdcfa05acfeedf", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/recurring/recurring-page.jsx (1637 lines)"}, "properties": {"repobilityId": "0e611579331dfa31", "scanner": "scanner-primary", "fingerprint": "3bcdcfa05acfeedf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d2a8f8dd298a9166", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto/produto-app.jsx (1111 lines)"}, "properties": {"repobilityId": "fdb667c1d0e6c7c2", "scanner": "scanner-primary", "fingerprint": "d2a8f8dd298a9166", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-32dfd32766327d95", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto/cowork-app.jsx (1111 lines)"}, "properties": {"repobilityId": "2c5224ec14aed051", "scanner": "scanner-primary", "fingerprint": "32dfd32766327d95", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cc425dc03aa6480c", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/caixa-unificada/inbox-page.jsx (937 lines)"}, "properties": {"repobilityId": "77f7914cb9dea552", "scanner": "scanner-primary", "fingerprint": "cc425dc03aa6480c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a3f0ca318f709e54", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/produto-unificado/produto-app.jsx (1111 lines)"}, "properties": {"repobilityId": "5e1f232a1d35fcdf", "scanner": "scanner-primary", "fingerprint": "a3f0ca318f709e54", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f9b3938df309f9b6", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/vendas-cockpit/cowork-extras.jsx (1225 lines)"}, "properties": {"repobilityId": "14aa8104c3e879f6", "scanner": "scanner-primary", "fingerprint": "f9b3938df309f9b6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f0a623427fe95796", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-page.jsx (1537 lines)"}, "properties": {"repobilityId": "b50911a7c30c3d18", "scanner": "scanner-primary", "fingerprint": "f0a623427fe95796", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7320caf7e1ac17e0", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-create/vendas-extras.jsx (1225 lines)"}, "properties": {"repobilityId": "495a0ba486224f23", "scanner": "scanner-primary", "fingerprint": "7320caf7e1ac17e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0a9e4d0d48343571", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-page.jsx (1666 lines)"}, "properties": {"repobilityId": "b15875ec17176f41", "scanner": "scanner-primary", "fingerprint": "0a9e4d0d48343571", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-35017de7e552dda8", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-page.jsx (1537 lines)"}, "properties": {"repobilityId": "0e9277d49276d1bf", "scanner": "scanner-primary", "fingerprint": "35017de7e552dda8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cbb735a2b5a24c4a", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/boleto-contas-app.jsx (946 lines)"}, "properties": {"repobilityId": "35ac613b75c5853a", "scanner": "scanner-primary", "fingerprint": "cbb735a2b5a24c4a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1de414c39403f731", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-extras.jsx (1269 lines)"}, "properties": {"repobilityId": "53cebb3ebf230307", "scanner": "scanner-primary", "fingerprint": "1de414c39403f731", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e8a67336ed1a9a22", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-page.jsx (1141 lines)"}, "properties": {"repobilityId": "c23e9aa0fe3334df", "scanner": "scanner-primary", "fingerprint": "e8a67336ed1a9a22", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6dfeda94972f520c", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/vendas-page.jsx (1666 lines)"}, "properties": {"repobilityId": "b4fb6dce8d2ad405", "scanner": "scanner-primary", "fingerprint": "6dfeda94972f520c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-22c770c9f70e0293", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-page.jsx (1537 lines)"}, "properties": {"repobilityId": "a366e726b5b9fb63", "scanner": "scanner-primary", "fingerprint": "22c770c9f70e0293", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f2c207a9a7ef5bb2", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-app.jsx (1133 lines)"}, "properties": {"repobilityId": "3d9799d8178ad2fc", "scanner": "scanner-primary", "fingerprint": "f2c207a9a7ef5bb2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-daf4bc2fccb32d11", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/boleto-contas-app.jsx (946 lines)"}, "properties": {"repobilityId": "b079215da91b80e3", "scanner": "scanner-primary", "fingerprint": "daf4bc2fccb32d11", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9af7dcd9a288b798", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/vendas-extras.jsx (1269 lines)"}, "properties": {"repobilityId": "3d12cd13a1e8fb34", "scanner": "scanner-primary", "fingerprint": "9af7dcd9a288b798", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3f784dce07f88509", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-page.jsx (1141 lines)"}, "properties": {"repobilityId": "b350a92d20413dae", "scanner": "scanner-primary", "fingerprint": "3f784dce07f88509", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7376be792335b0e8", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/financeiro-app.jsx (986 lines)"}, "properties": {"repobilityId": "1fdc199e33b0eca1", "scanner": "scanner-primary", "fingerprint": "7376be792335b0e8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9017b71d2c480695", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/boleto-contas-app.jsx (946 lines)"}, "properties": {"repobilityId": "f769bdb0f07b5eb4", "scanner": "scanner-primary", "fingerprint": "9017b71d2c480695", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-13c7f9a3190ab88d", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/produto-app.jsx (1111 lines)"}, "properties": {"repobilityId": "714be55ceff8976e", "scanner": "scanner-primary", "fingerprint": "13c7f9a3190ab88d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-af1b2cd0369375b5", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/vendas-extras.jsx (1225 lines)"}, "properties": {"repobilityId": "dd480c7ff5550dd0", "scanner": "scanner-primary", "fingerprint": "af1b2cd0369375b5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b854a352ca7c8841", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/prototipos/produto/produto-app.jsx (1111 lines)"}, "properties": {"repobilityId": "bd01a4cb5fba6010", "scanner": "scanner-primary", "fingerprint": "b854a352ca7c8841", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4430c1c4330de85f", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/boleto-contas-app.jsx (905 lines)"}, "properties": {"repobilityId": "79ebf8e0b69f76a4", "scanner": "scanner-primary", "fingerprint": "4430c1c4330de85f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bc9fe9eb730be43d", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/produto-app.jsx (1111 lines)"}, "properties": {"repobilityId": "dcaafcf3fc8a9c75", "scanner": "scanner-primary", "fingerprint": "bc9fe9eb730be43d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4bccba9d90aca8bc", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/vendas-extras.jsx (1225 lines)"}, "properties": {"repobilityId": "e077d591809d5fa2", "scanner": "scanner-primary", "fingerprint": "4bccba9d90aca8bc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-59004cf7b30d1fc7", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/prototipos/produto/produto-app.jsx (1111 lines)"}, "properties": {"repobilityId": "bc9fd3feca6823c4", "scanner": "scanner-primary", "fingerprint": "59004cf7b30d1fc7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a8eaf230ea4350c9", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/vendas-page.jsx (1666 lines)"}, "properties": {"repobilityId": "6a8460075b4c3601", "scanner": "scanner-primary", "fingerprint": "a8eaf230ea4350c9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-19cce602820f0e62", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-app.jsx (1133 lines)"}, "properties": {"repobilityId": "1da6dc51c6e8221a", "scanner": "scanner-primary", "fingerprint": "19cce602820f0e62", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-44dbc08f3cf16d63", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/vendas-extras.jsx (1269 lines)"}, "properties": {"repobilityId": "479ebb5b2c4ef30f", "scanner": "scanner-primary", "fingerprint": "44dbc08f3cf16d63", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e61bb050d551e9d8", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-refino-kb-9.75/vendas-page.jsx (1598 lines)"}, "properties": {"repobilityId": "fbb327325373145a", "scanner": "scanner-primary", "fingerprint": "e61bb050d551e9d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-097cae709ad496fa", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-refino-kb-9.75/vendas-extras.jsx (1221 lines)"}, "properties": {"repobilityId": "80564e718398a438", "scanner": "scanner-primary", "fingerprint": "097cae709ad496fa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5cf2cf18b3bf0eeb", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/prototipos/produto/produto-app.jsx (1111 lines)"}, "properties": {"repobilityId": "e7cf0c166197b3f0", "scanner": "scanner-primary", "fingerprint": "5cf2cf18b3bf0eeb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2e200acc52329a93", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vendas-page.jsx (1159 lines)"}, "properties": {"repobilityId": "3bf936081579d6cd", "scanner": "scanner-primary", "fingerprint": "2e200acc52329a93", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8ae29a1789a2b8c4", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-page.jsx (1537 lines)"}, "properties": {"repobilityId": "e69bd509fbf379c2", "scanner": "scanner-primary", "fingerprint": "8ae29a1789a2b8c4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bcdffc48576a9996", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/financeiro-app.jsx (986 lines)"}, "properties": {"repobilityId": "486830bb589baa73", "scanner": "scanner-primary", "fingerprint": "bcdffc48576a9996", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b05559296d43bfdc", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vendas-aplus.jsx (1093 lines)"}, "properties": {"repobilityId": "ca7609cb789cacec", "scanner": "scanner-primary", "fingerprint": "b05559296d43bfdc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b6a413c349006657", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/boleto-contas-app.jsx (946 lines)"}, "properties": {"repobilityId": "56bb97ca10d990d8", "scanner": "scanner-primary", "fingerprint": "b6a413c349006657", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-591036d062a9d1ff", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/produto-app.jsx (1111 lines)"}, "properties": {"repobilityId": "60265959b0b8a461", "scanner": "scanner-primary", "fingerprint": "591036d062a9d1ff", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-aa7576afefdc38ab", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vendas-extras.jsx (1225 lines)"}, "properties": {"repobilityId": "bf0ad1ffa4eeedb3", "scanner": "scanner-primary", "fingerprint": "aa7576afefdc38ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2bdada3506ba8565", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-page.jsx (1141 lines)"}, "properties": {"repobilityId": "fd6e73c8aed8e93a", "scanner": "scanner-primary", "fingerprint": "2bdada3506ba8565", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a6bbfcc851045f0d", "level": "note", "message": {"text": "Very large file: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/prototipos/produto/produto-app.jsx (1111 lines)"}, "properties": {"repobilityId": "e104b7d4858af45b", "scanner": "scanner-primary", "fingerprint": "a6bbfcc851045f0d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fcec18abede3df4c", "level": "note", "message": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-flow.jsx (1407 lines)"}, "properties": {"repobilityId": "95f37635aa20432c", "scanner": "scanner-primary", "fingerprint": "fcec18abede3df4c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a83905b1727d094f", "level": "note", "message": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-page.jsx (1921 lines)"}, "properties": {"repobilityId": "05b5a41e186474aa", "scanner": "scanner-primary", "fingerprint": "a83905b1727d094f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c772952d06b708ab", "level": "note", "message": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/clientes-page.jsx (1028 lines)"}, "properties": {"repobilityId": "be8819f92fc2f4da", "scanner": "scanner-primary", "fingerprint": "c772952d06b708ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2bacb9353ebaff95", "level": "note", "message": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-page.jsx (1537 lines)"}, "properties": {"repobilityId": "eb6fa72bffa94296", "scanner": "scanner-primary", "fingerprint": "2bacb9353ebaff95", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7eb917e75759ca09", "level": "note", "message": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-app.jsx (1133 lines)"}, "properties": {"repobilityId": "9c8cb77933de572b", "scanner": "scanner-primary", "fingerprint": "7eb917e75759ca09", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-97ec29979b9568a2", "level": "note", "message": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/boleto-contas-app.jsx (946 lines)"}, "properties": {"repobilityId": "c9ada7e8f07fc127", "scanner": "scanner-primary", "fingerprint": "97ec29979b9568a2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7cc3463ec0baed45", "level": "note", "message": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-cobranca-page.jsx (996 lines)"}, "properties": {"repobilityId": "3a13e1a8f7282be9", "scanner": "scanner-primary", "fingerprint": "7cc3463ec0baed45", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ad9d1d69d81377e7", "level": "note", "message": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-extras.jsx (1325 lines)"}, "properties": {"repobilityId": "ee6a5691a82c0c70", "scanner": "scanner-primary", "fingerprint": "ad9d1d69d81377e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5287628feb588d51", "level": "note", "message": {"text": "Very large file: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-page.jsx (1141 lines)"}, "properties": {"repobilityId": "55823a5d17bd018b", "scanner": "scanner-primary", "fingerprint": "5287628feb588d51", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2527c09f48606221", "level": "note", "message": {"text": "Very large file: prototipo-ui/prototipos/caixa-unificada/inbox-page.jsx (1141 lines)"}, "properties": {"repobilityId": "a05edf3491b07b4e", "scanner": "scanner-primary", "fingerprint": "2527c09f48606221", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e95c125949d70073", "level": "note", "message": {"text": "Very large file: resources/js/Pages/Whatsapp/_components/ConversationThread.tsx (1644 lines)"}, "properties": {"repobilityId": "e16adde35f49592a", "scanner": "scanner-primary", "fingerprint": "e95c125949d70073", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3a0694b88c3c053b", "level": "note", "message": {"text": "Very large file: resources/js/Pages/Financeiro/_cowork-bundle/financeiro-app.jsx (1133 lines)"}, "properties": {"repobilityId": "4380d707626d827c", "scanner": "scanner-primary", "fingerprint": "3a0694b88c3c053b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c1b0c0a5adf31af7", "level": "note", "message": {"text": "Very large file: resources/js/Pages/Financeiro/Unificado/Index.tsx (2729 lines)"}, "properties": {"repobilityId": "a2857e66db68dbee", "scanner": "scanner-primary", "fingerprint": "c1b0c0a5adf31af7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b43a39735684e29b", "level": "note", "message": {"text": "Very large file: resources/js/Pages/RecurringBilling/Index.tsx (1880 lines)"}, "properties": {"repobilityId": "89e1132ffa60590c", "scanner": "scanner-primary", "fingerprint": "b43a39735684e29b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-287e4929b9517a85", "level": "note", "message": {"text": "Very large file: resources/js/Pages/Cliente/Index.tsx (2682 lines)"}, "properties": {"repobilityId": "093e85318cf86845", "scanner": "scanner-primary", "fingerprint": "287e4929b9517a85", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dacf459d4c6b19d7", "level": "note", "message": {"text": "Very large file: resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx (1300 lines)"}, "properties": {"repobilityId": "9f8b26464e5a7154", "scanner": "scanner-primary", "fingerprint": "dacf459d4c6b19d7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fd4fb4ea6505c5cd", "level": "note", "message": {"text": "Very large file: resources/js/Pages/Sells/Index.tsx (1807 lines)"}, "properties": {"repobilityId": "4e717487eb954d66", "scanner": "scanner-primary", "fingerprint": "fd4fb4ea6505c5cd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-89ecafb48d1f8006", "level": "note", "message": {"text": "Very large file: resources/js/Pages/Sells/Edit.tsx (1100 lines)"}, "properties": {"repobilityId": "454f357537757dd8", "scanner": "scanner-primary", "fingerprint": "89ecafb48d1f8006", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-796d0ea6fe7206ad", "level": "note", "message": {"text": "Very large file: resources/js/Pages/Sells/Create.tsx (1998 lines)"}, "properties": {"repobilityId": "a04412761d36e5af", "scanner": "scanner-primary", "fingerprint": "796d0ea6fe7206ad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c47beac9cae3b15b", "level": "note", "message": {"text": "Very large file: resources/plugins/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.js (2061 lines)"}, "properties": {"repobilityId": "50a4cd7610a915e1", "scanner": "scanner-primary", "fingerprint": "c47beac9cae3b15b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6c3f581dc314ad77", "level": "note", "message": {"text": "Very large file: resources/plugins/AdminLTE/plugins/daterangepicker/daterangepicker.js (1565 lines)"}, "properties": {"repobilityId": "dd2624f5e353ddef", "scanner": "scanner-primary", "fingerprint": "6c3f581dc314ad77", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fb74efeb9769d412", "level": "note", "message": {"text": "Very large file: resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js (14975 lines)"}, "properties": {"repobilityId": "5563169dc70f2c42", "scanner": "scanner-primary", "fingerprint": "fb74efeb9769d412", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-878fb93fca4099a0", "level": "note", "message": {"text": "Very large file: resources/plugins/AdminLTE/plugins/fullcalendar/fullcalendar.js (9731 lines)"}, "properties": {"repobilityId": "b196686caafc92c7", "scanner": "scanner-primary", "fingerprint": "878fb93fca4099a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f11ce1ff94c01366", "level": "note", "message": {"text": "Very large file: resources/plugins/AdminLTE/plugins/select2/select2.js (5725 lines)"}, "properties": {"repobilityId": "0cf5db3801610ceb", "scanner": "scanner-primary", "fingerprint": "f11ce1ff94c01366", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f7bf7a4e54466f6c", "level": "note", "message": {"text": "Very large file: resources/plugins/AdminLTE/plugins/select2/select2.full.js (6436 lines)"}, "properties": {"repobilityId": "e1580cc04d0cf206", "scanner": "scanner-primary", "fingerprint": "f7bf7a4e54466f6c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9345b194ecf8a5c0", "level": "note", "message": {"text": "Very large file: resources/plugins/AdminLTE/plugins/DataTables/JSZip-2.5.0/jszip.js (9154 lines)"}, "properties": {"repobilityId": "709cdad17d21a2d9", "scanner": "scanner-primary", "fingerprint": "9345b194ecf8a5c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-680733d7f761290e", "level": "note", "message": {"text": "Very large file: resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables.js (15243 lines)"}, "properties": {"repobilityId": "83cf06cab38e4f32", "scanner": "scanner-primary", "fingerprint": "680733d7f761290e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ef48d0d58fdbbca7", "level": "note", "message": {"text": "Very large file: resources/plugins/AdminLTE/plugins/bootstrap-slider/bootstrap-slider.js (1576 lines)"}, "properties": {"repobilityId": "d5e0d5e70db8eba3", "scanner": "scanner-primary", "fingerprint": "ef48d0d58fdbbca7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e475f325c6be20ed", "level": "note", "message": {"text": "Very large file: resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.js (16616 lines)"}, "properties": {"repobilityId": "2e8ec52dce529b8e", "scanner": "scanner-primary", "fingerprint": "e475f325c6be20ed", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7249f6f17b71902f", "level": "note", "message": {"text": "Very large file: resources/plugins/AdminLTE/plugins/input-mask/jquery.inputmask.js (1627 lines)"}, "properties": {"repobilityId": "637df425437d1cb1", "scanner": "scanner-primary", "fingerprint": "7249f6f17b71902f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-36572b20e410a43b", "level": "note", "message": {"text": "Very large file: resources/plugins/bootstrap/js/bootstrap.js (2377 lines)"}, "properties": {"repobilityId": "e0cdfe472071b8f0", "scanner": "scanner-primary", "fingerprint": "36572b20e410a43b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2209eb53a9ce6f11", "level": "note", "message": {"text": "Very large file: resources/plugins/fullcalendar/fullcalendar.d.ts (2677 lines)"}, "properties": {"repobilityId": "09a23d9222aba8d2", "scanner": "scanner-primary", "fingerprint": "2209eb53a9ce6f11", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-96797db06313dbfd", "level": "note", "message": {"text": "Very large file: resources/plugins/fullcalendar/fullcalendar.js (15147 lines)"}, "properties": {"repobilityId": "bcb2e61272ad2477", "scanner": "scanner-primary", "fingerprint": "96797db06313dbfd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f824de98e5540a53", "level": "note", "message": {"text": "Very large file: resources/plugins/dropzone/dropzone.js (3530 lines)"}, "properties": {"repobilityId": "0be0fb7be92ab0ea", "scanner": "scanner-primary", "fingerprint": "f824de98e5540a53", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7bcc6f52f3d74b63", "level": "note", "message": {"text": "Very large file: resources/plugins/jquery-validation-1.16.0/test/test.js (2359 lines)"}, "properties": {"repobilityId": "ef9125c78f90e922", "scanner": "scanner-primary", "fingerprint": "7bcc6f52f3d74b63", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-aed38ef588c0b0b8", "level": "note", "message": {"text": "Very large file: resources/plugins/jquery-validation-1.16.0/test/methods.js (1637 lines)"}, "properties": {"repobilityId": "34bb8c4ccc0dc2ea", "scanner": "scanner-primary", "fingerprint": "aed38ef588c0b0b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-af587c50794a82a9", "level": "note", "message": {"text": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js (9596 lines)"}, "properties": {"repobilityId": "516b8cd97b983f52", "scanner": "scanner-primary", "fingerprint": "af587c50794a82a9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4a03ce649da70f13", "level": "note", "message": {"text": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js (9404 lines)"}, "properties": {"repobilityId": "9149c45e3c012153", "scanner": "scanner-primary", "fingerprint": "4a03ce649da70f13", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8ad393f43f1e85b8", "level": "note", "message": {"text": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js (9471 lines)"}, "properties": {"repobilityId": "cd2f8b36f85e2294", "scanner": "scanner-primary", "fingerprint": "8ad393f43f1e85b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-850655cf729e35fa", "level": "note", "message": {"text": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-1.11.1.js (10308 lines)"}, "properties": {"repobilityId": "f6b2325cd8a6e4a7", "scanner": "scanner-primary", "fingerprint": "850655cf729e35fa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-166c5cc251b13b18", "level": "note", "message": {"text": "Very large file: resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js (10220 lines)"}, "properties": {"repobilityId": "e8928f219f9dcd61", "scanner": "scanner-primary", "fingerprint": "166c5cc251b13b18", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-33cfef2188734ef2", "level": "note", "message": {"text": "Very large file: resources/plugins/jquery.steps/jquery.steps.js (2041 lines)"}, "properties": {"repobilityId": "5915465405dcd40c", "scanner": "scanner-primary", "fingerprint": "33cfef2188734ef2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-513d35dd834b141e", "level": "note", "message": {"text": "Very large file: doc/assets/backend/js/app.js (24841 lines)"}, "properties": {"repobilityId": "ff6d1adf38549679", "scanner": "scanner-primary", "fingerprint": "513d35dd834b141e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-699f8001de5123c5", "level": "note", "message": {"text": "Very large file: public/js/pos.js (3207 lines)"}, "properties": {"repobilityId": "ecd3d604d12d9737", "scanner": "scanner-primary", "fingerprint": "699f8001de5123c5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3f69af84317ec622", "level": "note", "message": {"text": "Very large file: public/js/report.js (1815 lines)"}, "properties": {"repobilityId": "0d040d8061a6070b", "scanner": "scanner-primary", "fingerprint": "3f69af84317ec622", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-37620ba1fd0eba12", "level": "note", "message": {"text": "Very large file: public/js/app.js (2871 lines)"}, "properties": {"repobilityId": "95bc23e2f7df6e1a", "scanner": "scanner-primary", "fingerprint": "37620ba1fd0eba12", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2e4cf75e950631be", "level": "note", "message": {"text": "Very large file: public/js/purchase.js (1350 lines)"}, "properties": {"repobilityId": "05959e0bf1b22356", "scanner": "scanner-primary", "fingerprint": "2e4cf75e950631be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4d69d0d86f8155fd", "level": "note", "message": {"text": "Very large file: public/cowork-preview/erp-shell-v2/produto-app.jsx (1111 lines)"}, "properties": {"repobilityId": "ff33722145571e98", "scanner": "scanner-primary", "fingerprint": "4d69d0d86f8155fd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9d1264947f493e03", "level": "note", "message": {"text": "Very large file: public/cowork-preview/erp-shell-v2/recurring-page.jsx (1637 lines)"}, "properties": {"repobilityId": "0199de7c32401212", "scanner": "scanner-primary", "fingerprint": "9d1264947f493e03", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-311a96560ee2c618", "level": "note", "message": {"text": "Very large file: public/cowork-preview/erp-shell-v2/vendas-extras.jsx (1225 lines)"}, "properties": {"repobilityId": "757807cac21058b7", "scanner": "scanner-primary", "fingerprint": "311a96560ee2c618", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f241f371f18f58d7", "level": "note", "message": {"text": "Very large file: public/cowork-preview/erp-shell-v2/fiscal-page.jsx (1542 lines)"}, "properties": {"repobilityId": "2a5a99d053774901", "scanner": "scanner-primary", "fingerprint": "f241f371f18f58d7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a1b876be7676d21d", "level": "note", "message": {"text": "Very large file: public/cowork-preview/erp-shell/vendas-page.jsx (1667 lines)"}, "properties": {"repobilityId": "30a725267f7080ce", "scanner": "scanner-primary", "fingerprint": "a1b876be7676d21d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1a48fe0d7ae8a7b2", "level": "note", "message": {"text": "Very large file: public/cowork-preview/erp-shell/kb-page.jsx (1537 lines)"}, "properties": {"repobilityId": "af47eefc7db00254", "scanner": "scanner-primary", "fingerprint": "1a48fe0d7ae8a7b2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7a307c8b387fc83d", "level": "note", "message": {"text": "Very large file: public/cowork-preview/erp-shell/financeiro-app.jsx (1133 lines)"}, "properties": {"repobilityId": "55d7b2e11bdf46e6", "scanner": "scanner-primary", "fingerprint": "7a307c8b387fc83d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3c968a6e257d66fc", "level": "note", "message": {"text": "Very large file: public/cowork-preview/erp-shell/boleto-contas-app.jsx (946 lines)"}, "properties": {"repobilityId": "70ce56414a29b91f", "scanner": "scanner-primary", "fingerprint": "3c968a6e257d66fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4e01a7de6e3e7ddb", "level": "note", "message": {"text": "Very large file: public/cowork-preview/erp-shell/pg-cobranca-page.jsx (996 lines)"}, "properties": {"repobilityId": "12cc42aee3681dea", "scanner": "scanner-primary", "fingerprint": "4e01a7de6e3e7ddb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-69315674b553762b", "level": "note", "message": {"text": "Very large file: public/cowork-preview/erp-shell/vendas-extras.jsx (1269 lines)"}, "properties": {"repobilityId": "ec5874b8461361d4", "scanner": "scanner-primary", "fingerprint": "69315674b553762b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d3925c1ce6d62c24", "level": "note", "message": {"text": "Very large file: public/cowork-preview/erp-shell/inbox-page.jsx (1141 lines)"}, "properties": {"repobilityId": "114cadb46f7a5b3a", "scanner": "scanner-primary", "fingerprint": "d3925c1ce6d62c24", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9c67747552550e0c", "level": "note", "message": {"text": "Very large file: public/prototipos/kb/kb-page.jsx (1537 lines)"}, "properties": {"repobilityId": "cf79b2fab0515f8c", "scanner": "scanner-primary", "fingerprint": "9c67747552550e0c", "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-ed0fca79a2904363", "level": "note", "message": {"text": "481 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "ed0fca79a2904363", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-3845440ecee60ae4", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/Essentials/package.json"}, "properties": {"repobilityId": "ef2013cfd56c2d28", "scanner": "scanner-primary", "fingerprint": "3845440ecee60ae4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/Essentials/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8269dcfe24a9fd95", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/ProductCatalogue/package.json"}, "properties": {"repobilityId": "2d2377e0012495e6", "scanner": "scanner-primary", "fingerprint": "8269dcfe24a9fd95", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/ProductCatalogue/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6c92afaa56e6c6f1", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/AssetManagement/package.json"}, "properties": {"repobilityId": "35989a43520e687c", "scanner": "scanner-primary", "fingerprint": "6c92afaa56e6c6f1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/AssetManagement/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9440f685ba0b0e6c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/Financeiro/package.json"}, "properties": {"repobilityId": "fcd1bcc9074867c1", "scanner": "scanner-primary", "fingerprint": "9440f685ba0b0e6c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/Financeiro/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-882dc912aeefe7d7", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/RecurringBilling/package.json"}, "properties": {"repobilityId": "1f93ebe3668c7d45", "scanner": "scanner-primary", "fingerprint": "882dc912aeefe7d7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/RecurringBilling/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-93f0dcb3058c5945", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/Spreadsheet/package.json"}, "properties": {"repobilityId": "ac5ecbf4c61d08cd", "scanner": "scanner-primary", "fingerprint": "93f0dcb3058c5945", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/Spreadsheet/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b9b7c55fa38796c2", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/Cms/package.json"}, "properties": {"repobilityId": "55bd2f01adef26de", "scanner": "scanner-primary", "fingerprint": "b9b7c55fa38796c2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/Cms/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3f43f2fc3502c34a", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/Manufacturing/package.json"}, "properties": {"repobilityId": "bb971e091d2db8d1", "scanner": "scanner-primary", "fingerprint": "3f43f2fc3502c34a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/Manufacturing/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-40a0021feb4127c9", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/Repair/package.json"}, "properties": {"repobilityId": "1e3dddeee5dd9762", "scanner": "scanner-primary", "fingerprint": "40a0021feb4127c9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/Repair/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d2d6a00e732e89ce", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/NfeBrasil/package.json"}, "properties": {"repobilityId": "b0ac7b38f0ef0cad", "scanner": "scanner-primary", "fingerprint": "d2d6a00e732e89ce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/NfeBrasil/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b1f889439a48ec54", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/Woocommerce/package.json"}, "properties": {"repobilityId": "e442cd2fd7d27bb3", "scanner": "scanner-primary", "fingerprint": "b1f889439a48ec54", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/Woocommerce/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eb070234bf460a46", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/Officeimpresso/package.json"}, "properties": {"repobilityId": "5becbb1aff9f603c", "scanner": "scanner-primary", "fingerprint": "eb070234bf460a46", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/Officeimpresso/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a99503e0d5ab9543", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/Ponto/package.json"}, "properties": {"repobilityId": "39038e2a17a702bd", "scanner": "scanner-primary", "fingerprint": "a99503e0d5ab9543", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/Ponto/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5aa63545cf93b288", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/Connector/package.json"}, "properties": {"repobilityId": "842dbed61ed71b4c", "scanner": "scanner-primary", "fingerprint": "5aa63545cf93b288", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/Connector/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f400a77ef5b98efa", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/Superadmin/package.json"}, "properties": {"repobilityId": "30afd604f0a808ec", "scanner": "scanner-primary", "fingerprint": "f400a77ef5b98efa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/Superadmin/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ddc7281f7eba8bd6", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Modules/Crm/package.json"}, "properties": {"repobilityId": "2d5f4ddff94dbdeb", "scanner": "scanner-primary", "fingerprint": "ddc7281f7eba8bd6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Modules/Crm/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ad3f34c2a9fa573b", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: resources/plugins/jquery-validation-1.16.0/package.json"}, "properties": {"repobilityId": "3d7d8b1e8f78fe4b", "scanner": "scanner-primary", "fingerprint": "ad3f34c2a9fa573b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resources/plugins/jquery-validation-1.16.0/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4018fc5b6916e51e", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: scripts/dual-brain/package.json"}, "properties": {"repobilityId": "0c69100ccaa63ed6", "scanner": "scanner-primary", "fingerprint": "4018fc5b6916e51e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dual-brain/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "89af7d669cea9574", "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": "61d914879eb2f5d0", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "5ee94ac410c27a47", "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": "17412ee258d881e1", "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": "c44dc266dc1c7a90", "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": "1376a083e1f3a410", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-cc55229a7a3c078d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .mcp.json"}, "properties": {"repobilityId": "51942fb3d5b8b5b4", "scanner": "scanner-primary", "fingerprint": "cc55229a7a3c078d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "mcp_config"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".mcp.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-48960addd53d7c38", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/CLAUDE.md"}, "properties": {"repobilityId": "1f8b60c78bd80b8c", "scanner": "scanner-primary", "fingerprint": "48960addd53d7c38", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dbae6fdd21bf0994", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/CLAUDE.md"}, "properties": {"repobilityId": "68cba10bed8524fb", "scanner": "scanner-primary", "fingerprint": "dbae6fdd21bf0994", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bce859e804d339d6", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/CLAUDE.md"}, "properties": {"repobilityId": "087c2ab318efff4e", "scanner": "scanner-primary", "fingerprint": "bce859e804d339d6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-045d955a54cb9606", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/CLAUDE.md"}, "properties": {"repobilityId": "7c16cd194ba1cbfe", "scanner": "scanner-primary", "fingerprint": "045d955a54cb9606", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8f86a20d3aebb1ad", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/CLAUDE.md"}, "properties": {"repobilityId": "bac534e7dba40629", "scanner": "scanner-primary", "fingerprint": "8f86a20d3aebb1ad", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a94f978f1590a8ae", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/CLAUDE.md"}, "properties": {"repobilityId": "403426b2d56ea255", "scanner": "scanner-primary", "fingerprint": "a94f978f1590a8ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8f4e953e489afe4b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/CLAUDE.md"}, "properties": {"repobilityId": "bed6fbe530d435f6", "scanner": "scanner-primary", "fingerprint": "8f4e953e489afe4b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d41ffed000cfb4ed", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/CLAUDE.md"}, "properties": {"repobilityId": "0a1077136bfb26f9", "scanner": "scanner-primary", "fingerprint": "d41ffed000cfb4ed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a32179addafb5f70", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/CLAUDE.md"}, "properties": {"repobilityId": "5921bdfd68274597", "scanner": "scanner-primary", "fingerprint": "a32179addafb5f70", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-58db43eab2c1ca09", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/rules/commands.md"}, "properties": {"repobilityId": "9723cec7b8e34bca", "scanner": "scanner-primary", "fingerprint": "58db43eab2c1ca09", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/commands.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e81bb1a9a965cf0a", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/rules/reuse-check.md"}, "properties": {"repobilityId": "9c12af87782f5edf", "scanner": "scanner-primary", "fingerprint": "e81bb1a9a965cf0a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/reuse-check.md"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-be62216d21412972", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/rules/reuse-check.md"}, "properties": {"repobilityId": "f792c71a3842f47c", "scanner": "scanner-primary", "fingerprint": "be62216d21412972", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/reuse-check.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-88ad91f22c0e9262", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/rules/calculo-valor-estoque.md"}, "properties": {"repobilityId": "7b554f3dcacf70e4", "scanner": "scanner-primary", "fingerprint": "88ad91f22c0e9262", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/calculo-valor-estoque.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-71bcc15e25ed0e94", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/comparativo.md"}, "properties": {"repobilityId": "57383f3c36fb6db0", "scanner": "scanner-primary", "fingerprint": "71bcc15e25ed0e94", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/comparativo.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ca66540d2821de4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/audit-and-fix.md"}, "properties": {"repobilityId": "84e53596dca5a4d1", "scanner": "scanner-primary", "fingerprint": "3ca66540d2821de4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/audit-and-fix.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-076774a9f302eb19", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/commands/continuar.md"}, "properties": {"repobilityId": "132f7228c4bc87e1", "scanner": "scanner-primary", "fingerprint": "076774a9f302eb19", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/continuar.md"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-47cf380708c81271", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/design-arte.md"}, "properties": {"repobilityId": "5e934e98bbdcf61e", "scanner": "scanner-primary", "fingerprint": "47cf380708c81271", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/design-arte.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ae124c776cd068d7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/capterra-senior.md"}, "properties": {"repobilityId": "34839e3db7cea892", "scanner": "scanner-primary", "fingerprint": "ae124c776cd068d7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/capterra-senior.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0b0881383f9690b2", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/agents/como-integrar.md"}, "properties": {"repobilityId": "3ed8460df7e78e83", "scanner": "scanner-primary", "fingerprint": "0b0881383f9690b2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/como-integrar.md"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-e2f2093192a8f5e2", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/coordenador-paralelo.md"}, "properties": {"repobilityId": "97e2897f272b53c2", "scanner": "scanner-primary", "fingerprint": "e2f2093192a8f5e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/coordenador-paralelo.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-172bd19ce39de4bc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/whatsapp-arch-arte.md"}, "properties": {"repobilityId": "05f10fd866a1dd05", "scanner": "scanner-primary", "fingerprint": "172bd19ce39de4bc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/whatsapp-arch-arte.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ea17ead5b1b9b2f7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/audit-research-expert.md"}, "properties": {"repobilityId": "64236553886b4d47", "scanner": "scanner-primary", "fingerprint": "ea17ead5b1b9b2f7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/audit-research-expert.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6a8cea058a3acedf", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/maturity-gap-expert.md"}, "properties": {"repobilityId": "7461739d6ac69bfe", "scanner": "scanner-primary", "fingerprint": "6a8cea058a3acedf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/maturity-gap-expert.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-10906505ef1d3b6c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/migracao-firebird-versoes.md"}, "properties": {"repobilityId": "5e26e91b67b967ff", "scanner": "scanner-primary", "fingerprint": "10906505ef1d3b6c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/migracao-firebird-versoes.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dfba32314d5cc722", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/audit-implement-expert.md"}, "properties": {"repobilityId": "7368dd21678dfdea", "scanner": "scanner-primary", "fingerprint": "dfba32314d5cc722", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/audit-implement-expert.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f5c63e2e1dd2baca", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/audit-senior-expert.md"}, "properties": {"repobilityId": "efddb7b19465956c", "scanner": "scanner-primary", "fingerprint": "f5c63e2e1dd2baca", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/audit-senior-expert.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-346e444798d71c46", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/whatsapp-doctor.md"}, "properties": {"repobilityId": "008279368aa394db", "scanner": "scanner-primary", "fingerprint": "346e444798d71c46", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/whatsapp-doctor.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bbf0135ae50d0b54", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/tela-venda-arte.md"}, "properties": {"repobilityId": "b697b147f61e1b27", "scanner": "scanner-primary", "fingerprint": "bbf0135ae50d0b54", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/tela-venda-arte.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4631b8aa2e3e85f9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/estado-da-arte.md"}, "properties": {"repobilityId": "8397f24ad0193198", "scanner": "scanner-primary", "fingerprint": "4631b8aa2e3e85f9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/estado-da-arte.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-04a101f11269b10d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/financeiro-bridge-auditor.md"}, "properties": {"repobilityId": "1d1b7a5370d807d8", "scanner": "scanner-primary", "fingerprint": "04a101f11269b10d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/financeiro-bridge-auditor.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a5d403a01ba893a3", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/migracao-officeimpresso.md"}, "properties": {"repobilityId": "dc229bcdf4fb21c8", "scanner": "scanner-primary", "fingerprint": "a5d403a01ba893a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/migracao-officeimpresso.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-39fc989ebec86187", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/screen-grade/SKILL.md"}, "properties": {"repobilityId": "ff01b841494a149c", "scanner": "scanner-primary", "fingerprint": "39fc989ebec86187", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/screen-grade/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dc91e8856e8a3d53", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/module-grades-gate/SKILL.md"}, "properties": {"repobilityId": "b518a6037e3105d9", "scanner": "scanner-primary", "fingerprint": "dc91e8856e8a3d53", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/module-grades-gate/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6da597005ad1e42c", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/ads-decision-flow/SKILL.md"}, "properties": {"repobilityId": "69220be7d47d362c", "scanner": "scanner-primary", "fingerprint": "6da597005ad1e42c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/ads-decision-flow/SKILL.md"}, "region": {"startLine": 172}}}]}, {"ruleId": "scanner-9c023fc95d8618e6", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/ticket-triage/SKILL.md"}, "properties": {"repobilityId": "40719a6f0701b949", "scanner": "scanner-primary", "fingerprint": "9c023fc95d8618e6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/ticket-triage/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-587e390cc31de2c7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/sdd-avaliar/SKILL.md"}, "properties": {"repobilityId": "1451b356e935a6e6", "scanner": "scanner-primary", "fingerprint": "587e390cc31de2c7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/sdd-avaliar/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-44a68e03ccad29a1", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/cockpit-runbook/SKILL.md"}, "properties": {"repobilityId": "d1c2e9989c465836", "scanner": "scanner-primary", "fingerprint": "44a68e03ccad29a1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/cockpit-runbook/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e4a2ea5b3a0cf925", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/pageheader-canon/SKILL.md"}, "properties": {"repobilityId": "c98f851703575e99", "scanner": "scanner-primary", "fingerprint": "e4a2ea5b3a0cf925", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/pageheader-canon/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-468eed9fa14ad842", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/automem-pending/SKILL.md"}, "properties": {"repobilityId": "f36c5bac7983c541", "scanner": "scanner-primary", "fingerprint": "468eed9fa14ad842", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/automem-pending/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4b8fbfed88ab46e1", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/curador/SKILL.md"}, "properties": {"repobilityId": "9d4f0b3f795d1cdd", "scanner": "scanner-primary", "fingerprint": "4b8fbfed88ab46e1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/curador/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3fba85e8f48e8606", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/avaliar-modulo/SKILL.md"}, "properties": {"repobilityId": "5301ee4f97e05d93", "scanner": "scanner-primary", "fingerprint": "3fba85e8f48e8606", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/avaliar-modulo/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f112aaeb212031cc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/migration-status/SKILL.md"}, "properties": {"repobilityId": "3f5ebd1faf81073e", "scanner": "scanner-primary", "fingerprint": "f112aaeb212031cc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/migration-status/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-34a4e6f5474bfc43", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/pre-adr-introspect/SKILL.md"}, "properties": {"repobilityId": "52ee38b6aac2b0fe", "scanner": "scanner-primary", "fingerprint": "34a4e6f5474bfc43", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/pre-adr-introspect/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c10493f9d7d8d99d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/tela-smoke-pos-merge/SKILL.md"}, "properties": {"repobilityId": "47ec0da71d890a83", "scanner": "scanner-primary", "fingerprint": "c10493f9d7d8d99d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/tela-smoke-pos-merge/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-34c6e07073e73e6e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/proxmox-docker-host/SKILL.md"}, "properties": {"repobilityId": "e15dd765f8c22961", "scanner": "scanner-primary", "fingerprint": "34c6e07073e73e6e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/proxmox-docker-host/SKILL.md"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-f0cb4341b93f69b4", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: .claude/skills/proxmox-docker-host/SKILL.md"}, "properties": {"repobilityId": "21d751a162887b5f", "scanner": "scanner-primary", "fingerprint": "f0cb4341b93f69b4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/proxmox-docker-host/SKILL.md"}, "region": {"startLine": 175}}}]}, {"ruleId": "scanner-65dacad34cc2d8af", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/hostinger-dns-autonomy/SKILL.md"}, "properties": {"repobilityId": "788333384943d259", "scanner": "scanner-primary", "fingerprint": "65dacad34cc2d8af", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/hostinger-dns-autonomy/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a69af97e11ab5d92", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/audit-constituicao/SKILL.md"}, "properties": {"repobilityId": "ddf72a87499419bf", "scanner": "scanner-primary", "fingerprint": "a69af97e11ab5d92", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/audit-constituicao/SKILL.md"}, "region": {"startLine": 276}}}]}, {"ruleId": "scanner-a633a9856f5b2fdb", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/audit-constituicao/prompts/05-cycle-goals.md"}, "properties": {"repobilityId": "9308747f34e5493d", "scanner": "scanner-primary", "fingerprint": "a633a9856f5b2fdb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/audit-constituicao/prompts/05-cycle-goals.md"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-658b25ae5f6d51ce", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/mwart-comparative/TEMPLATE.md"}, "properties": {"repobilityId": "f51fd9f46af4d075", "scanner": "scanner-primary", "fingerprint": "658b25ae5f6d51ce", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/mwart-comparative/TEMPLATE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9ea6dd80a12aa7ac", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/memory-first-secret-search/SKILL.md"}, "properties": {"repobilityId": "5cd07cf565946541", "scanner": "scanner-primary", "fingerprint": "9ea6dd80a12aa7ac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/memory-first-secret-search/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-475f95216af0b864", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/oimpresso-cc-watcher-setup/SKILL.md"}, "properties": {"repobilityId": "7456983320b76568", "scanner": "scanner-primary", "fingerprint": "475f95216af0b864", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/oimpresso-cc-watcher-setup/SKILL.md"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-0922ccc5a469765c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/officeimpresso-source-analysis/SKILL.md"}, "properties": {"repobilityId": "2521373783a0471d", "scanner": "scanner-primary", "fingerprint": "0922ccc5a469765c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/officeimpresso-source-analysis/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cf0384ab5daafade", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/personas-resolve/SKILL.md"}, "properties": {"repobilityId": "77c90a4e93ae0608", "scanner": "scanner-primary", "fingerprint": "cf0384ab5daafade", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/personas-resolve/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2946ef859b4e6e11", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/preflight-modulo/SKILL.md"}, "properties": {"repobilityId": "06e8bf37afde16e1", "scanner": "scanner-primary", "fingerprint": "2946ef859b4e6e11", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/preflight-modulo/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c7bb95cf80e9fc9a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/publication-policy/SKILL.md"}, "properties": {"repobilityId": "aa1134559d42ff80", "scanner": "scanner-primary", "fingerprint": "c7bb95cf80e9fc9a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/publication-policy/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-cf1f700608bd17fd", "level": "none", "message": {"text": "Commented-code block (5 lines) in stylelint.config.mjs:3"}, "properties": {"repobilityId": "07b5d2c2c6630a39", "scanner": "scanner-primary", "fingerprint": "cf1f700608bd17fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ade1f3a940a7fe45", "level": "none", "message": {"text": "Commented-code block (7 lines) in vite.inertia.config.mjs:13"}, "properties": {"repobilityId": "6a0df35d6ba2cf42", "scanner": "scanner-primary", "fingerprint": "ade1f3a940a7fe45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c66fe966ebf5dfd5", "level": "none", "message": {"text": "Commented-code block (5 lines) in eslint.config.js:89"}, "properties": {"repobilityId": "ebe87167826d06ff", "scanner": "scanner-primary", "fingerprint": "c66fe966ebf5dfd5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-746f9fd246b6ea17", "level": "none", "message": {"text": "Commented-code block (5 lines) in vitest.config.ts:4"}, "properties": {"repobilityId": "b034d4f09331cb6e", "scanner": "scanner-primary", "fingerprint": "746f9fd246b6ea17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e49736e1cd3c7b5b", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/numberPtBR.test.ts:3"}, "properties": {"repobilityId": "963afaaac2c94468", "scanner": "scanner-primary", "fingerprint": "e49736e1cd3c7b5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e84645317dac1b1c", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/product-keyboard-nav.test.tsx:3"}, "properties": {"repobilityId": "23acd1bf62077749", "scanner": "scanner-primary", "fingerprint": "e84645317dac1b1c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b50ef8c8ed5a95a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/br-inputs.test.tsx:4"}, "properties": {"repobilityId": "8049c20e17aafc95", "scanner": "scanner-primary", "fingerprint": "b50ef8c8ed5a95a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47cdaa1bbf2c4141", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/vendas-flow.jsx:171"}, "properties": {"repobilityId": "7e6034bc8203cc96", "scanner": "scanner-primary", "fingerprint": "47cdaa1bbf2c4141", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ed222f5075ee7f3", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/vendas-page.jsx:65"}, "properties": {"repobilityId": "447b2a9aa5f5d38e", "scanner": "scanner-primary", "fingerprint": "6ed222f5075ee7f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5391d12d8dd2de1", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/integrity-check.mjs:8"}, "properties": {"repobilityId": "ceedc94aaeaf155a", "scanner": "scanner-primary", "fingerprint": "d5391d12d8dd2de1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0485606c13d91c6c", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/ds-guard.mjs:8"}, "properties": {"repobilityId": "5db442602031fedf", "scanner": "scanner-primary", "fingerprint": "0485606c13d91c6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b52821d910d633a", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/data-vendas.jsx:314"}, "properties": {"repobilityId": "c3cbc84204ca120a", "scanner": "scanner-primary", "fingerprint": "1b52821d910d633a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8174e5eb3a420d56", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/vendas-output.jsx:11"}, "properties": {"repobilityId": "4b446c9fa42adfcb", "scanner": "scanner-primary", "fingerprint": "8174e5eb3a420d56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81a15d3d2b6e8061", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-dre/page.tsx:1"}, "properties": {"repobilityId": "804c27e5ce4e3a6f", "scanner": "scanner-primary", "fingerprint": "81a15d3d2b6e8061", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d994d255bf1dfe8", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/components/pg-shell-adapters.jsx:6"}, "properties": {"repobilityId": "d0dc62c54e68b81f", "scanner": "scanner-primary", "fingerprint": "9d994d255bf1dfe8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12336384f2525cb0", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/payment-gateway-ui/components/pg-vendas-integration.jsx:3"}, "properties": {"repobilityId": "abeb0af5afaebafe", "scanner": "scanner-primary", "fingerprint": "12336384f2525cb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1be69e756d1206da", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-trouble-lib.jsx:6"}, "properties": {"repobilityId": "119dbfd822550703", "scanner": "scanner-primary", "fingerprint": "1be69e756d1206da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e8d8eabd7bc808a", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-trouble-editor.jsx:6"}, "properties": {"repobilityId": "c31fb7d47084b8c9", "scanner": "scanner-primary", "fingerprint": "7e8d8eabd7bc808a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e79b3ab0537c0ecd", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-page.jsx:65"}, "properties": {"repobilityId": "983d82bfc62ac8d5", "scanner": "scanner-primary", "fingerprint": "e79b3ab0537c0ecd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22e8daf1b381d66d", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "4cb8cf7486bea597", "scanner": "scanner-primary", "fingerprint": "22e8daf1b381d66d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ab1e995725169a1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/laravel-panel.jsx:91"}, "properties": {"repobilityId": "29a6756606965a35", "scanner": "scanner-primary", "fingerprint": "1ab1e995725169a1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-098eae230b1041d5", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-aplus.jsx:1"}, "properties": {"repobilityId": "e72fef0fbcb33b14", "scanner": "scanner-primary", "fingerprint": "098eae230b1041d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-456025dbd352630e", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/vendas-output.jsx:11"}, "properties": {"repobilityId": "b20e1734af206bcd", "scanner": "scanner-primary", "fingerprint": "456025dbd352630e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-509bb28849291466", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/data.jsx:11"}, "properties": {"repobilityId": "5fde486949437c23", "scanner": "scanner-primary", "fingerprint": "509bb28849291466", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92168aa5bca665d9", "level": "none", "message": {"text": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/inbox-page.jsx:11"}, "properties": {"repobilityId": "2551d086ebd15942", "scanner": "scanner-primary", "fingerprint": "92168aa5bca665d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55d0346193854d5a", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/app.jsx:4"}, "properties": {"repobilityId": "27cb7d19408e1c0d", "scanner": "scanner-primary", "fingerprint": "55d0346193854d5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70c96b32e8ec9bd7", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/kb-paths.jsx:229"}, "properties": {"repobilityId": "e89f2c65c59a71cf", "scanner": "scanner-primary", "fingerprint": "70c96b32e8ec9bd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb2b02c7ea92b292", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-fluxo/page.tsx:1"}, "properties": {"repobilityId": "87698e190b3c8edb", "scanner": "scanner-primary", "fingerprint": "fb2b02c7ea92b292", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a91d3ab0ecc21953", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-conciliacao/page.tsx:1"}, "properties": {"repobilityId": "58101536a7093b66", "scanner": "scanner-primary", "fingerprint": "a91d3ab0ecc21953", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6c4634c6d51c4dd", "level": "none", "message": {"text": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/caixa-unificada/inbox-page.jsx:11"}, "properties": {"repobilityId": "6c683e7453968c86", "scanner": "scanner-primary", "fingerprint": "f6c4634c6d51c4dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34697b1432fde9b9", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/financeiro-plano-contas/page.tsx:1"}, "properties": {"repobilityId": "9bd7c5a92a36c210", "scanner": "scanner-primary", "fingerprint": "34697b1432fde9b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f8afdf94f2648fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-trouble-lib.jsx:6"}, "properties": {"repobilityId": "24975a842938147e", "scanner": "scanner-primary", "fingerprint": "7f8afdf94f2648fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f6c3423c3a754c9", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-trouble-editor.jsx:6"}, "properties": {"repobilityId": "1dcc582dace67194", "scanner": "scanner-primary", "fingerprint": "7f6c3423c3a754c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afce0d7dce789a87", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/kb/kb-paths.jsx:229"}, "properties": {"repobilityId": "ad72cb0a5fa21c3c", "scanner": "scanner-primary", "fingerprint": "afce0d7dce789a87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ae962a7c62fa46a", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-trouble-lib.jsx:6"}, "properties": {"repobilityId": "63b4afc9127de836", "scanner": "scanner-primary", "fingerprint": "8ae962a7c62fa46a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-601042ac24b00e9e", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-trouble-editor.jsx:6"}, "properties": {"repobilityId": "5851496c19370f7e", "scanner": "scanner-primary", "fingerprint": "601042ac24b00e9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e49d2d5ff294049f", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-page.jsx:65"}, "properties": {"repobilityId": "a70c622c2f5c1a07", "scanner": "scanner-primary", "fingerprint": "e49d2d5ff294049f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee61cc9c4c01d5d3", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "9e46584faeb977ca", "scanner": "scanner-primary", "fingerprint": "ee61cc9c4c01d5d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c442b495d35f6dd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/laravel-panel.jsx:91"}, "properties": {"repobilityId": "41d21b8074203e71", "scanner": "scanner-primary", "fingerprint": "9c442b495d35f6dd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e70e4605e9007822", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/vendas-output.jsx:11"}, "properties": {"repobilityId": "46ed67be8e073832", "scanner": "scanner-primary", "fingerprint": "e70e4605e9007822", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b8c78afcac3d589", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/data.jsx:11"}, "properties": {"repobilityId": "3022b25ca5dca6e2", "scanner": "scanner-primary", "fingerprint": "7b8c78afcac3d589", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8a63be3a9979d1d", "level": "none", "message": {"text": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/inbox-page.jsx:11"}, "properties": {"repobilityId": "af34b2cf5a0d6fa0", "scanner": "scanner-primary", "fingerprint": "f8a63be3a9979d1d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b50e70b5a165f1c", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/app.jsx:4"}, "properties": {"repobilityId": "8e89306f767ebbf6", "scanner": "scanner-primary", "fingerprint": "4b50e70b5a165f1c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de6d42e28ab24c7d", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/kb-paths.jsx:229"}, "properties": {"repobilityId": "38da1c3c5cf2e957", "scanner": "scanner-primary", "fingerprint": "de6d42e28ab24c7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eba1fc2aa55ef8b0", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-trouble-lib.jsx:6"}, "properties": {"repobilityId": "d56f2be087d38ce3", "scanner": "scanner-primary", "fingerprint": "eba1fc2aa55ef8b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9628eee8671bb494", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-trouble-editor.jsx:6"}, "properties": {"repobilityId": "cef4d201669efef1", "scanner": "scanner-primary", "fingerprint": "9628eee8671bb494", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4de358de2cb4c743", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/vendas-page.jsx:65"}, "properties": {"repobilityId": "f297615bc89d7fed", "scanner": "scanner-primary", "fingerprint": "4de358de2cb4c743", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-357bea399929c1db", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "8d575f0f64fb2175", "scanner": "scanner-primary", "fingerprint": "357bea399929c1db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-175d4036a93c04ff", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-output.jsx:1"}, "properties": {"repobilityId": "dccf21787c9fff48", "scanner": "scanner-primary", "fingerprint": "175d4036a93c04ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6bc3bbe60645a432", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/laravel-panel.jsx:91"}, "properties": {"repobilityId": "65e7b5a63631588d", "scanner": "scanner-primary", "fingerprint": "6bc3bbe60645a432", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c2798f3873b7901f", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-ai.jsx:1"}, "properties": {"repobilityId": "ece2e993184fc7fe", "scanner": "scanner-primary", "fingerprint": "c2798f3873b7901f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55a8ee373e254daa", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/vendas-output.jsx:11"}, "properties": {"repobilityId": "f155e510e89c3696", "scanner": "scanner-primary", "fingerprint": "55a8ee373e254daa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-101d8cdd304e1976", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/data.jsx:11"}, "properties": {"repobilityId": "8a6426846d20a184", "scanner": "scanner-primary", "fingerprint": "101d8cdd304e1976", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c3c28c6c7414b7e", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/financeiro-curation.jsx:1"}, "properties": {"repobilityId": "1bb9184c63d372c3", "scanner": "scanner-primary", "fingerprint": "9c3c28c6c7414b7e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1473b0fac0fd398", "level": "none", "message": {"text": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/inbox-page.jsx:11"}, "properties": {"repobilityId": "573c01a4e1efe853", "scanner": "scanner-primary", "fingerprint": "f1473b0fac0fd398", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41d94a71c184b80e", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/app.jsx:4"}, "properties": {"repobilityId": "c048f71b56d66e10", "scanner": "scanner-primary", "fingerprint": "41d94a71c184b80e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c533f200df8acea", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/kb-paths.jsx:229"}, "properties": {"repobilityId": "3c104177fd856909", "scanner": "scanner-primary", "fingerprint": "6c533f200df8acea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7920b6c24c4bae77", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/cockpit/TweaksPanel.tsx:1"}, "properties": {"repobilityId": "775940b4314dff51", "scanner": "scanner-primary", "fingerprint": "7920b6c24c4bae77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-183f99adadc41447", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/cockpit/LinkedApps.tsx:1"}, "properties": {"repobilityId": "7981baec958442a8", "scanner": "scanner-primary", "fingerprint": "183f99adadc41447", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-919019aa112a580c", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/cockpit/Thread.tsx:1"}, "properties": {"repobilityId": "d5fd679d9543dcce", "scanner": "scanner-primary", "fingerprint": "919019aa112a580c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8975030c5385d8a", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/cockpit/shared.ts:1"}, "properties": {"repobilityId": "49a3a6d0468e36d6", "scanner": "scanner-primary", "fingerprint": "a8975030c5385d8a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e5777daf8fe1650", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Components/cockpit/Sidebar.tsx:1"}, "properties": {"repobilityId": "86bfff3fc53562a8", "scanner": "scanner-primary", "fingerprint": "1e5777daf8fe1650", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ffa6a7062eaf8b1b", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Layouts/AppShellV2.tsx:1"}, "properties": {"repobilityId": "9bdb042ebd712145", "scanner": "scanner-primary", "fingerprint": "ffa6a7062eaf8b1b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a06359dbbd8b4cbf", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Pages/Copiloto/Chat.tsx:1"}, "properties": {"repobilityId": "751f41930c4dec85", "scanner": "scanner-primary", "fingerprint": "a06359dbbd8b4cbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d71179ec520bfbcc", "level": "none", "message": {"text": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Design System/resources/js/Pages/Copiloto/Cockpit.tsx:1"}, "properties": {"repobilityId": "9787eada191d846e", "scanner": "scanner-primary", "fingerprint": "d71179ec520bfbcc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40c0fb2e7e4b84bb", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "a6527f0363c4219d", "scanner": "scanner-primary", "fingerprint": "40c0fb2e7e4b84bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f43a9855c10fe38", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/laravel-panel.jsx:91"}, "properties": {"repobilityId": "921d16f9bfa9a9f7", "scanner": "scanner-primary", "fingerprint": "2f43a9855c10fe38", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4f3ab297bfe5e4f7", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/data.jsx:11"}, "properties": {"repobilityId": "516a27963b13d2ef", "scanner": "scanner-primary", "fingerprint": "4f3ab297bfe5e4f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e0945ac709058ef", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/app.jsx:4"}, "properties": {"repobilityId": "d3d34b8aed292009", "scanner": "scanner-primary", "fingerprint": "4e0945ac709058ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4220167a134e1264", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Components/cockpit/TweaksPanel.tsx:1"}, "properties": {"repobilityId": "35d04396bfcbafa2", "scanner": "scanner-primary", "fingerprint": "4220167a134e1264", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27ecf2a2342e3559", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Components/cockpit/LinkedApps.tsx:1"}, "properties": {"repobilityId": "bf8a6a39ac454496", "scanner": "scanner-primary", "fingerprint": "27ecf2a2342e3559", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b48c5883dccd44e", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Components/cockpit/Thread.tsx:1"}, "properties": {"repobilityId": "b55fa6a459a63bbc", "scanner": "scanner-primary", "fingerprint": "0b48c5883dccd44e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c4606be824a7138", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Components/cockpit/shared.ts:1"}, "properties": {"repobilityId": "b57fbcedb2ae6189", "scanner": "scanner-primary", "fingerprint": "0c4606be824a7138", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8bf37ccd0073c8c2", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Components/cockpit/Sidebar.tsx:1"}, "properties": {"repobilityId": "f4b25dafbd3992b1", "scanner": "scanner-primary", "fingerprint": "8bf37ccd0073c8c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-197d093b3a19f85b", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Layouts/AppShellV2.tsx:1"}, "properties": {"repobilityId": "04123accdd3f5560", "scanner": "scanner-primary", "fingerprint": "197d093b3a19f85b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f8cdcc0b2a8743e", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Pages/Copiloto/Chat.tsx:1"}, "properties": {"repobilityId": "7fb4a6f429fe0c0c", "scanner": "scanner-primary", "fingerprint": "2f8cdcc0b2a8743e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01c56068ea346393", "level": "none", "message": {"text": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/uploads/Design System/resources/js/Pages/Copiloto/Cockpit.tsx:1"}, "properties": {"repobilityId": "12e0abc97422f6ca", "scanner": "scanner-primary", "fingerprint": "01c56068ea346393", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd3384aee38da6fa", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/resources/js/Pages/Financeiro/DRE/Index.tsx:1"}, "properties": {"repobilityId": "f2bc1471976f48e8", "scanner": "scanner-primary", "fingerprint": "dd3384aee38da6fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a45acf661de5c38", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/resources/js/Pages/Financeiro/Fluxo/Index.tsx:1"}, "properties": {"repobilityId": "c47a71f4b791b893", "scanner": "scanner-primary", "fingerprint": "2a45acf661de5c38", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc9eb4c6eb15a126", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/resources/js/Pages/Financeiro/PlanoContas/Index.tsx:1"}, "properties": {"repobilityId": "bcb3d28cba0a6be0", "scanner": "scanner-primary", "fingerprint": "bc9eb4c6eb15a126", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fbfe9dc3d77c9cd7", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/Index.tsx:1"}, "properties": {"repobilityId": "876cb72b037d3320", "scanner": "scanner-primary", "fingerprint": "fbfe9dc3d77c9cd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4971e4f6a2ecb1b2", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/prototipo-ui-patch/resources/js/Pages/Financeiro/Conciliacao/Index.tsx:1"}, "properties": {"repobilityId": "d937f5631ae7b0ca", "scanner": "scanner-primary", "fingerprint": "4971e4f6a2ecb1b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4500357d99a75ebe", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "a7eca7721af4cbc8", "scanner": "scanner-primary", "fingerprint": "4500357d99a75ebe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94532c927b41257b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/laravel-panel.jsx:91"}, "properties": {"repobilityId": "9e6375df128d9237", "scanner": "scanner-primary", "fingerprint": "94532c927b41257b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-419b13e240b1ee1d", "level": "note", "message": {"text": "Legacy-named symbol `questions_v2` in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/boleto-contas-app.jsx:4"}, "properties": {"repobilityId": "ecffe2ec9703090b", "scanner": "scanner-primary", "fingerprint": "419b13e240b1ee1d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1f49883a04211a8f", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/boleto-contas-app.jsx:3"}, "properties": {"repobilityId": "dafbe4d5cc8da9e7", "scanner": "scanner-primary", "fingerprint": "1f49883a04211a8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b3257658122b07a", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/data.jsx:11"}, "properties": {"repobilityId": "016b8086e981eb6f", "scanner": "scanner-primary", "fingerprint": "2b3257658122b07a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8cdc4ea7e663616", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/app.jsx:4"}, "properties": {"repobilityId": "ca1f65b0cac4d65e", "scanner": "scanner-primary", "fingerprint": "a8cdc4ea7e663616", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85c7f826d3d3a8d2", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/DRE/Index.tsx:1"}, "properties": {"repobilityId": "8f098443c087fdde", "scanner": "scanner-primary", "fingerprint": "85c7f826d3d3a8d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6c73dabcdf67f4b", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/Fluxo/Index.tsx:1"}, "properties": {"repobilityId": "86b11085a1c0fa1c", "scanner": "scanner-primary", "fingerprint": "b6c73dabcdf67f4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7bf7373f57ad1958", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/PlanoContas/Index.tsx:1"}, "properties": {"repobilityId": "9ce95302323cf89d", "scanner": "scanner-primary", "fingerprint": "7bf7373f57ad1958", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9960ae5c7576899", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/Index.tsx:1"}, "properties": {"repobilityId": "edb598471441163c", "scanner": "scanner-primary", "fingerprint": "c9960ae5c7576899", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78d53893d20c265b", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/prototipo-ui-patch/resources/js/Pages/Financeiro/Conciliacao/Index.tsx:1"}, "properties": {"repobilityId": "1f311907128f8529", "scanner": "scanner-primary", "fingerprint": "78d53893d20c265b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27f9e5eaea653249", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/vendas-page.jsx:65"}, "properties": {"repobilityId": "53297858f912cd1c", "scanner": "scanner-primary", "fingerprint": "27f9e5eaea653249", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c10a1fc5c0a2240c", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-output.jsx:1"}, "properties": {"repobilityId": "ec6cca9278546ef3", "scanner": "scanner-primary", "fingerprint": "c10a1fc5c0a2240c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b093ab9a064aa1e8", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-ai.jsx:1"}, "properties": {"repobilityId": "0c80daf65a2b923c", "scanner": "scanner-primary", "fingerprint": "b093ab9a064aa1e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85bb39680beeaffa", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/vendas-output.jsx:11"}, "properties": {"repobilityId": "cf117c9aae0c86b1", "scanner": "scanner-primary", "fingerprint": "85bb39680beeaffa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22dd9acec27e7c24", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/data.jsx:11"}, "properties": {"repobilityId": "d11cf2f7025935b9", "scanner": "scanner-primary", "fingerprint": "22dd9acec27e7c24", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24f7ebcc5814e696", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/financeiro-curation.jsx:1"}, "properties": {"repobilityId": "de4818d33842280a", "scanner": "scanner-primary", "fingerprint": "24f7ebcc5814e696", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6901f6199029a9c", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-financeiro-completo/app.jsx:4"}, "properties": {"repobilityId": "3f5bdcb1d6d4f549", "scanner": "scanner-primary", "fingerprint": "e6901f6199029a9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-979c1a592e97d2f1", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/DRE/Index.tsx:1"}, "properties": {"repobilityId": "cf07062ac88e7c23", "scanner": "scanner-primary", "fingerprint": "979c1a592e97d2f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3e93c1b48acae6e", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/Fluxo/Index.tsx:1"}, "properties": {"repobilityId": "5cf529c9545bc0d5", "scanner": "scanner-primary", "fingerprint": "b3e93c1b48acae6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43c54819cb833fa2", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/PlanoContas/Index.tsx:1"}, "properties": {"repobilityId": "11bd4b36abd89ba5", "scanner": "scanner-primary", "fingerprint": "43c54819cb833fa2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b25a540ed446cb6a", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/Index.tsx:1"}, "properties": {"repobilityId": "5e24d4b7a4650424", "scanner": "scanner-primary", "fingerprint": "b25a540ed446cb6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03e4ea0190fd7c6f", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/resources/js/Pages/Financeiro/Conciliacao/Index.tsx:1"}, "properties": {"repobilityId": "e42261be7b14ae0a", "scanner": "scanner-primary", "fingerprint": "03e4ea0190fd7c6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2fbdd69545731343", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-refino-kb-9.75/vendas-page.jsx:65"}, "properties": {"repobilityId": "fa732311d0161ef0", "scanner": "scanner-primary", "fingerprint": "2fbdd69545731343", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89331549a3e1177a", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/prototipo-ui-patch/vendas-refino-kb-9.75/vendas-output.jsx:11"}, "properties": {"repobilityId": "7c3d9396e7260232", "scanner": "scanner-primary", "fingerprint": "89331549a3e1177a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ea3dd4f2137a129", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-trouble-lib.jsx:6"}, "properties": {"repobilityId": "69da0aabf5b0ac48", "scanner": "scanner-primary", "fingerprint": "1ea3dd4f2137a129", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-175bc3024827dee1", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-trouble-editor.jsx:6"}, "properties": {"repobilityId": "7bfbaaa2f52ed88f", "scanner": "scanner-primary", "fingerprint": "175bc3024827dee1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d71338c25c56ee5", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "4dfac1f5aa67a675", "scanner": "scanner-primary", "fingerprint": "8d71338c25c56ee5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18ff7ada2069feb8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/laravel-panel.jsx:91"}, "properties": {"repobilityId": "7f0fc0185face16d", "scanner": "scanner-primary", "fingerprint": "18ff7ada2069feb8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-44eb4dda6d104651", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/vendas-aplus.jsx:1"}, "properties": {"repobilityId": "fae52de94bdb381f", "scanner": "scanner-primary", "fingerprint": "44eb4dda6d104651", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b02c9ac85219165", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/data.jsx:11"}, "properties": {"repobilityId": "65dc559a811d1be0", "scanner": "scanner-primary", "fingerprint": "6b02c9ac85219165", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1937b295b524c581", "level": "none", "message": {"text": "Commented-code block (9 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/inbox-page.jsx:11"}, "properties": {"repobilityId": "e2b3c03a6da16427", "scanner": "scanner-primary", "fingerprint": "1937b295b524c581", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a346d248ae2cc212", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/app.jsx:4"}, "properties": {"repobilityId": "c61dbaee47f7df6d", "scanner": "scanner-primary", "fingerprint": "a346d248ae2cc212", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e98056ac8d882b04", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/kb-paths.jsx:229"}, "properties": {"repobilityId": "392e969cae5b8c7e", "scanner": "scanner-primary", "fingerprint": "e98056ac8d882b04", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3f1f6318426a949", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/DRE/Index.tsx:1"}, "properties": {"repobilityId": "8ed1a0f3204cb3a5", "scanner": "scanner-primary", "fingerprint": "e3f1f6318426a949", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca23606b1d0ef78f", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/Fluxo/Index.tsx:1"}, "properties": {"repobilityId": "17372b8dd83b8eec", "scanner": "scanner-primary", "fingerprint": "ca23606b1d0ef78f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-462b06304a9fdb09", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/PlanoContas/Index.tsx:1"}, "properties": {"repobilityId": "9665ac836acbb93d", "scanner": "scanner-primary", "fingerprint": "462b06304a9fdb09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ced49623ea308e8", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/Unificado/Index.tsx:1"}, "properties": {"repobilityId": "26dfe09f67a8a63d", "scanner": "scanner-primary", "fingerprint": "4ced49623ea308e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bcda46e942439cb", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/prototipo-ui-patch/resources/js/Pages/Financeiro/Conciliacao/Index.tsx:1"}, "properties": {"repobilityId": "cfc50c46062c57d4", "scanner": "scanner-primary", "fingerprint": "9bcda46e942439cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-642620c49a6e934e", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/audit/review-gen.mjs:4"}, "properties": {"repobilityId": "e486435fdb767bf4", "scanner": "scanner-primary", "fingerprint": "642620c49a6e934e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce13caf4714a92ce", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/audit/protocol-freshness.mjs:9"}, "properties": {"repobilityId": "9c1f9f1b5bc6afa4", "scanner": "scanner-primary", "fingerprint": "ce13caf4714a92ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0cffe9d867e5a864", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-flow.jsx:171"}, "properties": {"repobilityId": "6483e363bb318a95", "scanner": "scanner-primary", "fingerprint": "0cffe9d867e5a864", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1480feb559b62329", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-trouble-lib.jsx:6"}, "properties": {"repobilityId": "f4129b8a6bac33e4", "scanner": "scanner-primary", "fingerprint": "1480feb559b62329", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46a1a70b6f6c9f7f", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-trouble-editor.jsx:6"}, "properties": {"repobilityId": "fbc601071e904ac6", "scanner": "scanner-primary", "fingerprint": "46a1a70b6f6c9f7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd30f6600e2617c9", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-page.jsx:65"}, "properties": {"repobilityId": "536d05cb68acb6db", "scanner": "scanner-primary", "fingerprint": "bd30f6600e2617c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1bacacad65b7d9d", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "d245e344b2f56852", "scanner": "scanner-primary", "fingerprint": "c1bacacad65b7d9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44d25094f591a211", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-output.jsx:1"}, "properties": {"repobilityId": "1e6bb2aa3dc4088c", "scanner": "scanner-primary", "fingerprint": "44d25094f591a211", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ff47781c58f3397", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/laravel-panel.jsx:91"}, "properties": {"repobilityId": "505ca506bac8eaa9", "scanner": "scanner-primary", "fingerprint": "3ff47781c58f3397", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f197900a8e57d750", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-sells-cobranca-preview.jsx:121"}, "properties": {"repobilityId": "981612da67f7f2fe", "scanner": "scanner-primary", "fingerprint": "f197900a8e57d750", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48e3b21af5a6989c", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-ai.jsx:1"}, "properties": {"repobilityId": "1fa78a4d35b332cf", "scanner": "scanner-primary", "fingerprint": "48e3b21af5a6989c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a6a145065027e1f", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/data-vendas.jsx:314"}, "properties": {"repobilityId": "4c065a9f22658d5a", "scanner": "scanner-primary", "fingerprint": "7a6a145065027e1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49ac9ad2c44e4672", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/vendas-output.jsx:11"}, "properties": {"repobilityId": "e470759aecfb8afe", "scanner": "scanner-primary", "fingerprint": "49ac9ad2c44e4672", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68d554710e04a0bd", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/data.jsx:11"}, "properties": {"repobilityId": "968690a626bcce0e", "scanner": "scanner-primary", "fingerprint": "68d554710e04a0bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f205c922ec19fc02", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/financeiro-curation.jsx:1"}, "properties": {"repobilityId": "11736c8813665bff", "scanner": "scanner-primary", "fingerprint": "f205c922ec19fc02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fe848a0a9540245", "level": "none", "message": {"text": "Commented-code block (9 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/inbox-page.jsx:11"}, "properties": {"repobilityId": "15ef20d97cccb273", "scanner": "scanner-primary", "fingerprint": "4fe848a0a9540245", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bedb8a90d1438108", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/app.jsx:4"}, "properties": {"repobilityId": "e684107b8806034b", "scanner": "scanner-primary", "fingerprint": "bedb8a90d1438108", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82f0f168b37036de", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-shell-adapters.jsx:6"}, "properties": {"repobilityId": "b682f89981b7aa4e", "scanner": "scanner-primary", "fingerprint": "82f0f168b37036de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4eb833ce4d5d1fbb", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/pg-vendas-integration.jsx:3"}, "properties": {"repobilityId": "24aadfdececd099d", "scanner": "scanner-primary", "fingerprint": "4eb833ce4d5d1fbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e709e06ebc57e524", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/kb-paths.jsx:229"}, "properties": {"repobilityId": "6ff007e8bd012611", "scanner": "scanner-primary", "fingerprint": "e709e06ebc57e524", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a994a22835ad1cfb", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-ui/sells-emitir-cobranca-modal.jsx:121"}, "properties": {"repobilityId": "8a000351eeb044e9", "scanner": "scanner-primary", "fingerprint": "a994a22835ad1cfb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19ddfe1e79997f4d", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-ui/design-canvas.jsx:2"}, "properties": {"repobilityId": "81647d87c11b11d6", "scanner": "scanner-primary", "fingerprint": "19ddfe1e79997f4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2343518ae2108ca0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/prototipos/payment-gateway-ui/design-canvas.jsx:128"}, "properties": {"repobilityId": "7857022d98596bf7", "scanner": "scanner-primary", "fingerprint": "2343518ae2108ca0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-201ab9897abb3684", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototipo-ui/prototipos/clientes/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "3bf2483a37aaeb1d", "scanner": "scanner-primary", "fingerprint": "201ab9897abb3684", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-434a75b4746966e3", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/prototipos/clientes/clientes-975.jsx:28"}, "properties": {"repobilityId": "df43059f5a0c13c4", "scanner": "scanner-primary", "fingerprint": "434a75b4746966e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4bb2f3d8812a841e", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototipo-ui/prototipos/compras-grade-matrix/page.jsx:1"}, "properties": {"repobilityId": "b1c236c9f924ab15", "scanner": "scanner-primary", "fingerprint": "4bb2f3d8812a841e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19d09db7bef56d60", "level": "none", "message": {"text": "Commented-code block (9 lines) in prototipo-ui/prototipos/caixa-unificada/inbox-page.jsx:11"}, "properties": {"repobilityId": "187ef670f661113e", "scanner": "scanner-primary", "fingerprint": "19d09db7bef56d60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cdb7b71e3b1ec32f", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/app.tsx:18"}, "properties": {"repobilityId": "ff62cef1aed88dc3", "scanner": "scanner-primary", "fingerprint": "cdb7b71e3b1ec32f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad2ebc80a7a22085", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Components/MentionInput.tsx:114"}, "properties": {"repobilityId": "cb3d773f7a6538ba", "scanner": "scanner-primary", "fingerprint": "ad2ebc80a7a22085", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f1fce7b7ac1db4a5", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Components/shared/ConsentBanner.tsx:1"}, "properties": {"repobilityId": "2fc3139f7b065adc", "scanner": "scanner-primary", "fingerprint": "f1fce7b7ac1db4a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ebea981676ad811b", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Components/shared/PwaInstallBanner.tsx:1"}, "properties": {"repobilityId": "3ce5f29ea99915f7", "scanner": "scanner-primary", "fingerprint": "ebea981676ad811b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-515ae41554013da4", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Components/shared/VendaDerivadaCard.tsx:18"}, "properties": {"repobilityId": "303c759d187129d0", "scanner": "scanner-primary", "fingerprint": "515ae41554013da4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08ff88c3daeab1e1", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Components/ui/numeric-input-ptbr.tsx:12"}, "properties": {"repobilityId": "d0d62cb74936cebb", "scanner": "scanner-primary", "fingerprint": "08ff88c3daeab1e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9a29ee7c4ad648c", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Components/ui/phone-input.tsx:3"}, "properties": {"repobilityId": "3b2986a2e09d96b1", "scanner": "scanner-primary", "fingerprint": "e9a29ee7c4ad648c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-366c853d90398352", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Components/cockpit/TweaksPanel.tsx:1"}, "properties": {"repobilityId": "cfad643764cfd16c", "scanner": "scanner-primary", "fingerprint": "366c853d90398352", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca9c01a53ad94f59", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Components/cockpit/LinkedApps.tsx:1"}, "properties": {"repobilityId": "c6ad8b8fd1f7af01", "scanner": "scanner-primary", "fingerprint": "ca9c01a53ad94f59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52d575d7ac4ec6d5", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Components/cockpit/Thread.tsx:1"}, "properties": {"repobilityId": "fa1e8324cdfbe86d", "scanner": "scanner-primary", "fingerprint": "52d575d7ac4ec6d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6661b44910466597", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Components/cockpit/shared.ts:1"}, "properties": {"repobilityId": "78fe595202df8eb7", "scanner": "scanner-primary", "fingerprint": "6661b44910466597", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1547fcb07d91712d", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Components/cockpit/NfeCertBadge.tsx:1"}, "properties": {"repobilityId": "a4e999d7324c03b2", "scanner": "scanner-primary", "fingerprint": "1547fcb07d91712d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c22572a471d56abf", "level": "note", "message": {"text": "Legacy-named symbol `fromLegacy` in resources/js/Components/cockpit/Sidebar.tsx:272"}, "properties": {"repobilityId": "e6b018b1cf9aa0ee", "scanner": "scanner-primary", "fingerprint": "c22572a471d56abf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-671779db1f045a85", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Components/cockpit/Sidebar.tsx:1"}, "properties": {"repobilityId": "432b2becd5d42c58", "scanner": "scanner-primary", "fingerprint": "671779db1f045a85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a34afac55b2da4e", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Components/NfeBrasil/FiscalStatusBadge.tsx:1"}, "properties": {"repobilityId": "f411d4341200bb90", "scanner": "scanner-primary", "fingerprint": "7a34afac55b2da4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69c7529e273fba17", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Components/NfeBrasil/NfceStatusBadge.tsx:1"}, "properties": {"repobilityId": "235fa74d40e40675", "scanner": "scanner-primary", "fingerprint": "69c7529e273fba17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f6d7dc03526d346", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Components/board/TaskCard.tsx:3"}, "properties": {"repobilityId": "e4da9dcc68479503", "scanner": "scanner-primary", "fingerprint": "4f6d7dc03526d346", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78362b0366b4038d", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Hooks/useNfceStatus.ts:1"}, "properties": {"repobilityId": "584f769f306ef120", "scanner": "scanner-primary", "fingerprint": "78362b0366b4038d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-096a1b0cb91982e6", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Types/api-schemas/products.ts:7"}, "properties": {"repobilityId": "ebec617cf775e85a", "scanner": "scanner-primary", "fingerprint": "096a1b0cb91982e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52bbd69552f62dfe", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Types/api-schemas/customers.ts:11"}, "properties": {"repobilityId": "94894027532cfecc", "scanner": "scanner-primary", "fingerprint": "52bbd69552f62dfe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2a1ad25aa7c97e7", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Layouts/AppShellV2.tsx:1"}, "properties": {"repobilityId": "5a0a1c56024c268d", "scanner": "scanner-primary", "fingerprint": "e2a1ad25aa7c97e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0d72918bc77d381", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Essentials/Messages/Index.tsx:139"}, "properties": {"repobilityId": "2cf36d5fe8e81aa4", "scanner": "scanner-primary", "fingerprint": "d0d72918bc77d381", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8f41b9cd8fc33444", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Modules/Index.tsx:1"}, "properties": {"repobilityId": "9887760de6a60f93", "scanner": "scanner-primary", "fingerprint": "8f41b9cd8fc33444", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de72c34713342023", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/StockAdjustment/Index.tsx:1"}, "properties": {"repobilityId": "89acd5a0fec97133", "scanner": "scanner-primary", "fingerprint": "de72c34713342023", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c436fbb293fc33a", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/StockAdjustment/Create.tsx:1"}, "properties": {"repobilityId": "46375ccd8a694c43", "scanner": "scanner-primary", "fingerprint": "6c436fbb293fc33a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8804b2c0241f88fb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Settings/PaymentGateways/Index.tsx:108"}, "properties": {"repobilityId": "eb3ad8559209942f", "scanner": "scanner-primary", "fingerprint": "8804b2c0241f88fb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2b13459b04c93afe", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Settings/PaymentGateways/CnabRetorno.tsx:8"}, "properties": {"repobilityId": "a84d031abc5866a6", "scanner": "scanner-primary", "fingerprint": "2b13459b04c93afe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3427c73330aaa741", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/MemCofre/Chat.tsx:125"}, "properties": {"repobilityId": "77e9e08272980719", "scanner": "scanner-primary", "fingerprint": "3427c73330aaa741", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-46440ce222867ace", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/MemCofre/Modulo.tsx:2"}, "properties": {"repobilityId": "d06bfbd3ac046294", "scanner": "scanner-primary", "fingerprint": "46440ce222867ace", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61fa22e146551110", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/ProjectMgmt/Roadmap/Index.tsx:1"}, "properties": {"repobilityId": "e131f85f04702765", "scanner": "scanner-primary", "fingerprint": "61fa22e146551110", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57967b7010ea09db", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/ProjectMgmt/Burndown/Index.tsx:1"}, "properties": {"repobilityId": "fc870a922621a9d7", "scanner": "scanner-primary", "fingerprint": "57967b7010ea09db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-911fd6bbb9c3905e", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/ProjectMgmt/Activity/Index.tsx:1"}, "properties": {"repobilityId": "ccd3c661e65e4335", "scanner": "scanner-primary", "fingerprint": "911fd6bbb9c3905e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a29cacf2fd4ff860", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:1"}, "properties": {"repobilityId": "6036706b80add2ba", "scanner": "scanner-primary", "fingerprint": "a29cacf2fd4ff860", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-970681e6042ca22f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:163"}, "properties": {"repobilityId": "63c3fc8fd1119a6a", "scanner": "scanner-primary", "fingerprint": "970681e6042ca22f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fb87b95c15abb307", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/ProjectMgmt/Triage/Index.tsx:3"}, "properties": {"repobilityId": "e9c9e66e4e75512a", "scanner": "scanner-primary", "fingerprint": "fb87b95c15abb307", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ee16e3577839704", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Triage/Index.tsx:135"}, "properties": {"repobilityId": "9d097c0347eaf49c", "scanner": "scanner-primary", "fingerprint": "1ee16e3577839704", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-956b6eef894e087a", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/ProjectMgmt/Inbox/Index.tsx:3"}, "properties": {"repobilityId": "0c733b2ce5f2b02c", "scanner": "scanner-primary", "fingerprint": "956b6eef894e087a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6276340d44f6e7a5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Inbox/Index.tsx:138"}, "properties": {"repobilityId": "da750022562b20ee", "scanner": "scanner-primary", "fingerprint": "6276340d44f6e7a5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7d989bd9987a639f", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/ProjectMgmt/Backlog/Index.tsx:1"}, "properties": {"repobilityId": "6887ef67d6363110", "scanner": "scanner-primary", "fingerprint": "7d989bd9987a639f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-747b36be8648e651", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Backlog/Index.tsx:141"}, "properties": {"repobilityId": "b1048f497773c19f", "scanner": "scanner-primary", "fingerprint": "747b36be8648e651", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7e4d63fbb27bc629", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/ProjectMgmt/Board/Index.tsx:1"}, "properties": {"repobilityId": "de4841db7d4c6e39", "scanner": "scanner-primary", "fingerprint": "7e4d63fbb27bc629", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9cdf5a23243fc996", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Board/Index.tsx:180"}, "properties": {"repobilityId": "2585f1a28b7bb2df", "scanner": "scanner-primary", "fingerprint": "9cdf5a23243fc996", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b6909454fed07160", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:211"}, "properties": {"repobilityId": "ecc9f613049ad20a", "scanner": "scanner-primary", "fingerprint": "b6909454fed07160", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1f40640e6a0605ea", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/StockTransfer/Index.tsx:1"}, "properties": {"repobilityId": "b1496204cedded65", "scanner": "scanner-primary", "fingerprint": "1f40640e6a0605ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0161725b0b3ca6dc", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/StockTransfer/Create.tsx:1"}, "properties": {"repobilityId": "008ba188f32c01f5", "scanner": "scanner-primary", "fingerprint": "0161725b0b3ca6dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3f9a5de8023ca51", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/ads/Admin/Decisoes.tsx:1"}, "properties": {"repobilityId": "9b3d3984d296d7c6", "scanner": "scanner-primary", "fingerprint": "d3f9a5de8023ca51", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d1d8f53ddf4cc82", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Whatsapp/Settings.tsx:1"}, "properties": {"repobilityId": "d5b55ba3b2dbad25", "scanner": "scanner-primary", "fingerprint": "1d1d8f53ddf4cc82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79d3a86063e3c69c", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Whatsapp/Templates/Index.tsx:1"}, "properties": {"repobilityId": "3a6af3ef5830f1f6", "scanner": "scanner-primary", "fingerprint": "79d3a86063e3c69c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a75cb1122ba9795", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Whatsapp/_components/ConversationThread.tsx:300"}, "properties": {"repobilityId": "c0ca30d94c1073bb", "scanner": "scanner-primary", "fingerprint": "7a75cb1122ba9795", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0117abcb9c619f9f", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Whatsapp/_components/TemplatePicker.tsx:1"}, "properties": {"repobilityId": "19e7163c94790112", "scanner": "scanner-primary", "fingerprint": "0117abcb9c619f9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d81d72a44e853ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Whatsapp/_components/CustomerMemoryBlock.tsx:159"}, "properties": {"repobilityId": "1a94cc2e221dc670", "scanner": "scanner-primary", "fingerprint": "8d81d72a44e853ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74e2b13d83b2c754", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Whatsapp/_components/CaptureFeedbackSheet.tsx:128"}, "properties": {"repobilityId": "dde180000323c1db", "scanner": "scanner-primary", "fingerprint": "74e2b13d83b2c754", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad4b55fa442e3999", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/ProvaViva.tsx:1"}, "properties": {"repobilityId": "9dd49369594d6800", "scanner": "scanner-primary", "fingerprint": "ad4b55fa442e3999", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59e38240ef4d11ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Financeiro/Configuracoes/Contador.tsx:1"}, "properties": {"repobilityId": "4b51c06ba141ae53", "scanner": "scanner-primary", "fingerprint": "59e38240ef4d11ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39571fdb8e301068", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Financeiro/_cowork-bundle/shell-data.jsx:11"}, "properties": {"repobilityId": "682ff68a44ff3d3d", "scanner": "scanner-primary", "fingerprint": "39571fdb8e301068", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8ca64ff2384b244", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/_cowork-bundle/financeiro-output.jsx:1"}, "properties": {"repobilityId": "f23c09c83c4e5a2f", "scanner": "scanner-primary", "fingerprint": "d8ca64ff2384b244", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4463e15c3ed58a47", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/_cowork-bundle/shell-app.jsx:4"}, "properties": {"repobilityId": "ac3bb7ede7638842", "scanner": "scanner-primary", "fingerprint": "4463e15c3ed58a47", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd610b07ec0f4b82", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/_cowork-bundle/financeiro-ai.jsx:1"}, "properties": {"repobilityId": "43239c8bb8d3b33f", "scanner": "scanner-primary", "fingerprint": "dd610b07ec0f4b82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1bc88a96bf4dd069", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/_cowork-bundle/financeiro-curation.jsx:1"}, "properties": {"repobilityId": "1775acf96bff2411", "scanner": "scanner-primary", "fingerprint": "1bc88a96bf4dd069", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3847bc1a3d7758f0", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Financeiro/Fluxo/Index.tsx:1"}, "properties": {"repobilityId": "73739fcbec9995b7", "scanner": "scanner-primary", "fingerprint": "3847bc1a3d7758f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bce845e39040c913", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/Cobranca/Index.tsx:4"}, "properties": {"repobilityId": "026b34cf027de480", "scanner": "scanner-primary", "fingerprint": "bce845e39040c913", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-657828e9e298e48f", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Financeiro/Impostos/Index.tsx:1"}, "properties": {"repobilityId": "b6bd59f0a87532ab", "scanner": "scanner-primary", "fingerprint": "657828e9e298e48f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b76f522cf110264", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Advisor/Dashboard.tsx:1"}, "properties": {"repobilityId": "0b6ae530f01bc261", "scanner": "scanner-primary", "fingerprint": "4b76f522cf110264", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82c2e66881c41dbe", "level": "note", "message": {"text": "Legacy-named symbol `_KpiBarLegacy` in resources/js/Pages/Financeiro/Unificado/Index.tsx:944"}, "properties": {"repobilityId": "fbf7558f2281e40d", "scanner": "scanner-primary", "fingerprint": "82c2e66881c41dbe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5fd16f567116d20b", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Financeiro/Unificado/Index.tsx:1"}, "properties": {"repobilityId": "3674a20166f09452", "scanner": "scanner-primary", "fingerprint": "5fd16f567116d20b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3c9cbbafe5bb72e", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinSubNav.tsx:7"}, "properties": {"repobilityId": "4aa256d78e85d3fc", "scanner": "scanner-primary", "fingerprint": "a3c9cbbafe5bb72e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3d44bc458963bc5", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinCrossLinkify.tsx:8"}, "properties": {"repobilityId": "be5c869b60681f25", "scanner": "scanner-primary", "fingerprint": "a3d44bc458963bc5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a1f966594a5fbb8", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Unificado/_components/TituloEditSheet.tsx:4"}, "properties": {"repobilityId": "e5802c1791e5c958", "scanner": "scanner-primary", "fingerprint": "2a1f966594a5fbb8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74ff12c568c1c24d", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinPresentationMode.tsx:8"}, "properties": {"repobilityId": "1edb7bdbfc837afa", "scanner": "scanner-primary", "fingerprint": "74ff12c568c1c24d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-848a684ff7b1598b", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinPillFrescor.tsx:9"}, "properties": {"repobilityId": "56f8095de9d1bbb9", "scanner": "scanner-primary", "fingerprint": "848a684ff7b1598b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79213f7af16fbda0", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinAgeing.tsx:7"}, "properties": {"repobilityId": "14709f3eb54c8c68", "scanner": "scanner-primary", "fingerprint": "79213f7af16fbda0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a30de64f1a52c05a", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Financeiro/Unificado/_components/FinTroubleshooter.tsx:7"}, "properties": {"repobilityId": "8dd8d3f35d3f1f6b", "scanner": "scanner-primary", "fingerprint": "a30de64f1a52c05a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb11b1425a85545d", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Financeiro/Unificado/_components/PlanoContaCombobox.tsx:11"}, "properties": {"repobilityId": "d79e471b431aa443", "scanner": "scanner-primary", "fingerprint": "cb11b1425a85545d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67f1c2ddd121e90a", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Financeiro/Dre/Index.tsx:1"}, "properties": {"repobilityId": "28f07e3f4a0555db", "scanner": "scanner-primary", "fingerprint": "67f1c2ddd121e90a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de6f303e48770765", "level": "note", "message": {"text": "Legacy-named symbol `cash_register_legacy` in resources/js/Pages/Financeiro/Caixa/Index.tsx:45"}, "properties": {"repobilityId": "253df57ef8844738", "scanner": "scanner-primary", "fingerprint": "de6f303e48770765", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-43bab260915ed6e5", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Financeiro/_shared/FinStatStrip.tsx:3"}, "properties": {"repobilityId": "384f97f6e4b47d0f", "scanner": "scanner-primary", "fingerprint": "43bab260915ed6e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5c7beaa5980d4bd", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/RecurringBilling/Index.tsx:1394"}, "properties": {"repobilityId": "a8b26b5a4dd7b613", "scanner": "scanner-primary", "fingerprint": "a5c7beaa5980d4bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19abc23df62c956b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/RecurringBilling/Index.tsx:1221"}, "properties": {"repobilityId": "9fa0c2a1d975e343", "scanner": "scanner-primary", "fingerprint": "19abc23df62c956b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-86aefbbdf9599782", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/RecurringBilling/Configuracoes/Index.tsx:1"}, "properties": {"repobilityId": "1fbac0ef8bc6b6de", "scanner": "scanner-primary", "fingerprint": "86aefbbdf9599782", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21e9efa2945ae6a2", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/RecurringBilling/Planos/Index.tsx:1"}, "properties": {"repobilityId": "d4629cb9a04c187f", "scanner": "scanner-primary", "fingerprint": "21e9efa2945ae6a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-628eb8844ddd6f36", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Cliente/Index.tsx:1"}, "properties": {"repobilityId": "a44fe5340f45fdb4", "scanner": "scanner-primary", "fingerprint": "628eb8844ddd6f36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab03d92a27b60628", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/Index.tsx:576"}, "properties": {"repobilityId": "614ff2ffb5149959", "scanner": "scanner-primary", "fingerprint": "ab03d92a27b60628", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2f5584a378f31d7d", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Cliente/Show.tsx:5"}, "properties": {"repobilityId": "503ca7313a7636a6", "scanner": "scanner-primary", "fingerprint": "2f5584a378f31d7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-939e53983f793cf8", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Cliente/_form/DadosFiscaisBRSection.tsx:1"}, "properties": {"repobilityId": "4f830f64f915d636", "scanner": "scanner-primary", "fingerprint": "939e53983f793cf8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7040e9b3dd91140", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/SubscriptionsTab.tsx:23"}, "properties": {"repobilityId": "14c6147596074086", "scanner": "scanner-primary", "fingerprint": "a7040e9b3dd91140", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9fbf17a729c95071", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/RewardPointsTab.tsx:35"}, "properties": {"repobilityId": "71660a953426ea58", "scanner": "scanner-primary", "fingerprint": "9fbf17a729c95071", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-482251e33e842b2e", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_show/PaymentsTab.tsx:1"}, "properties": {"repobilityId": "1a97f3144a95ce10", "scanner": "scanner-primary", "fingerprint": "482251e33e842b2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed5e8f8548113554", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/PaymentsTab.tsx:107"}, "properties": {"repobilityId": "97ae5d10cdebc2d3", "scanner": "scanner-primary", "fingerprint": "ed5e8f8548113554", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9d7ef242d8356055", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Cliente/_show/ActionsMenu.tsx:1"}, "properties": {"repobilityId": "8d42119b36add93b", "scanner": "scanner-primary", "fingerprint": "9d7ef242d8356055", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6298b263cada1fe9", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_show/LedgerTab.tsx:1"}, "properties": {"repobilityId": "99c7c461b1402971", "scanner": "scanner-primary", "fingerprint": "6298b263cada1fe9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9d4dddbc0766a2c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/LedgerTab.tsx:131"}, "properties": {"repobilityId": "5a732e2bb4be352f", "scanner": "scanner-primary", "fingerprint": "b9d4dddbc0766a2c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-224248fa3d72e6d5", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_show/DocumentsTab.tsx:4"}, "properties": {"repobilityId": "d2b27402ed2e3875", "scanner": "scanner-primary", "fingerprint": "224248fa3d72e6d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9429bf0d0febc4cc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/DocumentsTab.tsx:185"}, "properties": {"repobilityId": "a44a7cc77027368d", "scanner": "scanner-primary", "fingerprint": "9429bf0d0febc4cc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-709ca5610a023c5b", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Cliente/_show/SalesTab.tsx:8"}, "properties": {"repobilityId": "643dfa766c49ccc5", "scanner": "scanner-primary", "fingerprint": "709ca5610a023c5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4942d35970035f6a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_show/SalesTab.tsx:11"}, "properties": {"repobilityId": "3e801d98ea3a86fe", "scanner": "scanner-primary", "fingerprint": "4942d35970035f6a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f7ff0b56fa6ec866", "level": "note", "message": {"text": "Legacy-named symbol `lang_v1` in resources/js/Pages/Cliente/_show/ActivitiesTab.tsx:66"}, "properties": {"repobilityId": "f7ef56c01d10db92", "scanner": "scanner-primary", "fingerprint": "f7ff0b56fa6ec866", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-149d27f60ca5134b", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_drawer/ContatoTab.tsx:10"}, "properties": {"repobilityId": "584a01a3a5408047", "scanner": "scanner-primary", "fingerprint": "149d27f60ca5134b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6082be82403d0a0a", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:11"}, "properties": {"repobilityId": "96f58d6a4e1a4e45", "scanner": "scanner-primary", "fingerprint": "6082be82403d0a0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40b57a556881591d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:323"}, "properties": {"repobilityId": "a25028c4c4b25bc3", "scanner": "scanner-primary", "fingerprint": "40b57a556881591d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f1ce8d9505eab8d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_drawer/IATab.tsx:3"}, "properties": {"repobilityId": "41aab07aab10b3a3", "scanner": "scanner-primary", "fingerprint": "f1ce8d9505eab8d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db39c2270a695d48", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_drawer/PlacasMainTab.tsx:84"}, "properties": {"repobilityId": "d04697f10f39abbc", "scanner": "scanner-primary", "fingerprint": "db39c2270a695d48", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-213643bdfae5fedb", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_drawer/AuditoriaTab.tsx:6"}, "properties": {"repobilityId": "5af36ac695c2785d", "scanner": "scanner-primary", "fingerprint": "213643bdfae5fedb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39ab52fe5454360b", "level": "none", "message": {"text": "Commented-code block (10 lines) in resources/js/Pages/Cliente/_drawer/ComercialTab.tsx:10"}, "properties": {"repobilityId": "abc72255f1c9be60", "scanner": "scanner-primary", "fingerprint": "39ab52fe5454360b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02c337f7421e7ded", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Cliente/_drawer/EnderecoTab.tsx:12"}, "properties": {"repobilityId": "b86669077b7ad666", "scanner": "scanner-primary", "fingerprint": "02c337f7421e7ded", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f99ccd5b1617f4d", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_drawer/OssTab.tsx:1"}, "properties": {"repobilityId": "cc0ddd3a5649ae9b", "scanner": "scanner-primary", "fingerprint": "9f99ccd5b1617f4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63e18daa57089b1f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Cliente/_drawer/OssTab.tsx:200"}, "properties": {"repobilityId": "4604e06e9aaff582", "scanner": "scanner-primary", "fingerprint": "63e18daa57089b1f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-75c6e3a939207ce2", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:12"}, "properties": {"repobilityId": "410e03d9d614bd84", "scanner": "scanner-primary", "fingerprint": "75c6e3a939207ce2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-acba91b33cb9f2b6", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Cliente/_drawer/ClassificacaoTab.tsx:10"}, "properties": {"repobilityId": "4118ae3975cb3fc3", "scanner": "scanner-primary", "fingerprint": "acba91b33cb9f2b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bbcbcd09aa599b75", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Cliente/_components/Pills.tsx:3"}, "properties": {"repobilityId": "bfbe2ce786aa4a1c", "scanner": "scanner-primary", "fingerprint": "bbcbcd09aa599b75", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fae3aa0c73b31f8b", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_components/Avatar.tsx:6"}, "properties": {"repobilityId": "67cea1fabc4a69e8", "scanner": "scanner-primary", "fingerprint": "fae3aa0c73b31f8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3aa45bf395dd4671", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Cliente/_components/KpiStripClickable.tsx:6"}, "properties": {"repobilityId": "e6f5e02e63e28315", "scanner": "scanner-primary", "fingerprint": "3aa45bf395dd4671", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e95659521954f22", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Manufacturing/Index.tsx:1"}, "properties": {"repobilityId": "be0758f0c59746fb", "scanner": "scanner-primary", "fingerprint": "1e95659521954f22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-260e4b997953e5ec", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Repair/ProducaoOficina/Index.tsx:6"}, "properties": {"repobilityId": "dea9a7ccc8636371", "scanner": "scanner-primary", "fingerprint": "260e4b997953e5ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6aed686e8b38dc1", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Repair/JobSheet/Index.tsx:1"}, "properties": {"repobilityId": "4b5be46a45374712", "scanner": "scanner-primary", "fingerprint": "c6aed686e8b38dc1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19557d2dbad7aa3c", "level": "none", "message": {"text": "Commented-code block (11 lines) in resources/js/Pages/Repair/JobSheet/AddParts.tsx:5"}, "properties": {"repobilityId": "d5806ad4a2666287", "scanner": "scanner-primary", "fingerprint": "19557d2dbad7aa3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-539b2db16f1f9e6d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Repair/JobSheet/AddParts.tsx:115"}, "properties": {"repobilityId": "334a8d0572be9239", "scanner": "scanner-primary", "fingerprint": "539b2db16f1f9e6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f5754ed8a360f104", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Repair/JobSheet/Create.tsx:5"}, "properties": {"repobilityId": "db79c4ed62095d0f", "scanner": "scanner-primary", "fingerprint": "f5754ed8a360f104", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aef68bfbbddfa23a", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/JanaTemplates.tsx:1"}, "properties": {"repobilityId": "ada34e245e5aab73", "scanner": "scanner-primary", "fingerprint": "aef68bfbbddfa23a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c00f6bc51c625f8", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Atendimento/Csat/Index.tsx:1"}, "properties": {"repobilityId": "76a9b5ad3353fc3e", "scanner": "scanner-primary", "fingerprint": "2c00f6bc51c625f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf78655b1e2d2f2e", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Atendimento/Macros/Variants.tsx:1"}, "properties": {"repobilityId": "ebb992b73ddf2fc5", "scanner": "scanner-primary", "fingerprint": "bf78655b1e2d2f2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2fe4f18151219e9f", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Atendimento/Macros/Index.tsx:1"}, "properties": {"repobilityId": "94d6f810128fce40", "scanner": "scanner-primary", "fingerprint": "2fe4f18151219e9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bef269021d0d83e1", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/Metricas/Index.tsx:1"}, "properties": {"repobilityId": "3f8a393ebb87feb6", "scanner": "scanner-primary", "fingerprint": "bef269021d0d83e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-882c548908484afc", "level": "none", "message": {"text": "Commented-code block (9 lines) in resources/js/Pages/Atendimento/CaixaUnificada/Index.tsx:1"}, "properties": {"repobilityId": "e06d0f8dac69a508", "scanner": "scanner-primary", "fingerprint": "882c548908484afc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ee4b9ca96d23322", "level": "none", "message": {"text": "Commented-code block (12 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ComposerV4.tsx:3"}, "properties": {"repobilityId": "af330090f750ce0a", "scanner": "scanner-primary", "fingerprint": "8ee4b9ca96d23322", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a48682574a3add61", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/ComposerV4.tsx:204"}, "properties": {"repobilityId": "420e2f65120d818e", "scanner": "scanner-primary", "fingerprint": "a48682574a3add61", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e692a54c470bcfb5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/InboxAiDialog.tsx:46"}, "properties": {"repobilityId": "233aedd74fc1ad23", "scanner": "scanner-primary", "fingerprint": "e692a54c470bcfb5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5132cabdfdf648dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ChannelsDrawer.tsx:4"}, "properties": {"repobilityId": "78b8f08497414e36", "scanner": "scanner-primary", "fingerprint": "5132cabdfdf648dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73e88f9a6a7c7a5e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Atendimento/CaixaUnificada/_components/BroadcastSheet.tsx:78"}, "properties": {"repobilityId": "7d3724bd7e071ad9", "scanner": "scanner-primary", "fingerprint": "73e88f9a6a7c7a5e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-14cf36a4f1fbb581", "level": "none", "message": {"text": "Commented-code block (9 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ContextSidebarV4.tsx:6"}, "properties": {"repobilityId": "e3bd9f702590b5bc", "scanner": "scanner-primary", "fingerprint": "14cf36a4f1fbb581", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b72bcd96d44d97b3", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ConversationListV4.tsx:3"}, "properties": {"repobilityId": "cda6543ab24779e7", "scanner": "scanner-primary", "fingerprint": "b72bcd96d44d97b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fada663fe9407eee", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ConversationThreadV4.tsx:3"}, "properties": {"repobilityId": "5f05e948bae9a7d1", "scanner": "scanner-primary", "fingerprint": "fada663fe9407eee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44e1b5fe8a70012a", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/NewConversationDialog.tsx:4"}, "properties": {"repobilityId": "c03cb5b866059e57", "scanner": "scanner-primary", "fingerprint": "44e1b5fe8a70012a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92ce4635fa5a6e5d", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Atendimento/CaixaUnificada/_components/ChannelChipsRow.tsx:3"}, "properties": {"repobilityId": "8ca02bc683a27ea7", "scanner": "scanner-primary", "fingerprint": "92ce4635fa5a6e5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1f4d5724b8ccae5", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Atendimento/Channels/Index.tsx:1"}, "properties": {"repobilityId": "51319976e7d2bef5", "scanner": "scanner-primary", "fingerprint": "b1f4d5724b8ccae5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a4f0a49db387169", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Atendimento/Channels/Show.tsx:1"}, "properties": {"repobilityId": "21a62cf7d72be16a", "scanner": "scanner-primary", "fingerprint": "9a4f0a49db387169", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29c6c7e7ffc61d7c", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/team-mcp/CcSessions/Index.tsx:1"}, "properties": {"repobilityId": "be27a82dec245d07", "scanner": "scanner-primary", "fingerprint": "29c6c7e7ffc61d7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ad9ef7fe727fb39", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/team-mcp/Team/Index.tsx:1"}, "properties": {"repobilityId": "be3f034bbeb3dd50", "scanner": "scanner-primary", "fingerprint": "6ad9ef7fe727fb39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d3b74c6d7e0de0e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/team-mcp/Team/Index.tsx:172"}, "properties": {"repobilityId": "c6bbe5dbd9a6f665", "scanner": "scanner-primary", "fingerprint": "4d3b74c6d7e0de0e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3ce64abb4b859b8f", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviPhotoGrid.tsx:11"}, "properties": {"repobilityId": "e7a2dfc372b71606", "scanner": "scanner-primary", "fingerprint": "3ce64abb4b859b8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-174fa22098254bb5", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/LaudoPhotoSection.tsx:15"}, "properties": {"repobilityId": "ad89e3cc9ff3cb1b", "scanner": "scanner-primary", "fingerprint": "174fa22098254bb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4edd4a89a4a4136", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/KanbanDndProvider.tsx:3"}, "properties": {"repobilityId": "56f04b5100aea053", "scanner": "scanner-primary", "fingerprint": "c4edd4a89a4a4136", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c57eefb355da8b75", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DragConfirmDialog.tsx:8"}, "properties": {"repobilityId": "b61ccc20191d910b", "scanner": "scanner-primary", "fingerprint": "c57eefb355da8b75", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf3a11b17c37a98c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DragConfirmDialog.tsx:12"}, "properties": {"repobilityId": "ae038764ebfee708", "scanner": "scanner-primary", "fingerprint": "cf3a11b17c37a98c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-284ee1316f795a38", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceOrderRichSheet.tsx:8"}, "properties": {"repobilityId": "8f516470cf7d0c1e", "scanner": "scanner-primary", "fingerprint": "284ee1316f795a38", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d018d7e0d7ccc8e2", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviInlineEditor.tsx:7"}, "properties": {"repobilityId": "04533646383a6cbf", "scanner": "scanner-primary", "fingerprint": "d018d7e0d7ccc8e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0924ff8e36f22dc6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/OficinaAuto/ProducaoOficina/_components/DviInlineEditor.tsx:257"}, "properties": {"repobilityId": "ade4709805f0f6f0", "scanner": "scanner-primary", "fingerprint": "0924ff8e36f22dc6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6b641f3ff4496c03", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/Edit.tsx:1"}, "properties": {"repobilityId": "4ac8f414ae0895ee", "scanner": "scanner-primary", "fingerprint": "6b641f3ff4496c03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2d4f3185c8d28fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/Show.tsx:1"}, "properties": {"repobilityId": "642d50c971a2925e", "scanner": "scanner-primary", "fingerprint": "b2d4f3185c8d28fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-795255639d9edda0", "level": "none", "message": {"text": "Commented-code block (15 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/Create.tsx:5"}, "properties": {"repobilityId": "e39e36234bb143c8", "scanner": "scanner-primary", "fingerprint": "795255639d9edda0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a138d686ca23578", "level": "none", "message": {"text": "Commented-code block (12 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx:24"}, "properties": {"repobilityId": "4bdd12e459d9c6fb", "scanner": "scanner-primary", "fingerprint": "1a138d686ca23578", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2a6314efb736d8a", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStagePipeline.tsx:118"}, "properties": {"repobilityId": "e3430be68b5d8fa1", "scanner": "scanner-primary", "fingerprint": "e2a6314efb736d8a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df83fc03967115c3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStagePipeline.tsx:35"}, "properties": {"repobilityId": "9aa06b7fde18448d", "scanner": "scanner-primary", "fingerprint": "df83fc03967115c3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-eae4f196e11d02fd", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/ApprovalGateCard.tsx:1"}, "properties": {"repobilityId": "ca0e4451023a2902", "scanner": "scanner-primary", "fingerprint": "eae4f196e11d02fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b742e7ed7e2125b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderTimeline.tsx:83"}, "properties": {"repobilityId": "3e322a65112f001f", "scanner": "scanner-primary", "fingerprint": "4b742e7ed7e2125b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1d5545ad110194fa", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/FiscalSplitCard.tsx:1"}, "properties": {"repobilityId": "1e7e50aa1f720211", "scanner": "scanner-primary", "fingerprint": "1d5545ad110194fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af0e0afccabad1d8", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/boardTone.ts:1"}, "properties": {"repobilityId": "e7354287a4e30bb2", "scanner": "scanner-primary", "fingerprint": "af0e0afccabad1d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86f03db754ce9767", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/OficinaAuto/ServiceOrders/_components/board/ServiceOrderKanbanCard.tsx:3"}, "properties": {"repobilityId": "640bf6ae9adef636", "scanner": "scanner-primary", "fingerprint": "86f03db754ce9767", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3de22ebd4922374f", "level": "none", "message": {"text": "Commented-code block (9 lines) in resources/js/Pages/OficinaAuto/Vehicles/Index.tsx:1"}, "properties": {"repobilityId": "ba620c61f93b1111", "scanner": "scanner-primary", "fingerprint": "3de22ebd4922374f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45ffd2d838c1e0df", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/OficinaAuto/Vehicles/_components/VehicleStatusBadge.tsx:6"}, "properties": {"repobilityId": "c3ead6c444f9f4cf", "scanner": "scanner-primary", "fingerprint": "45ffd2d838c1e0df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a12909b43a2fd7a1", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Produto/Index.tsx:1"}, "properties": {"repobilityId": "4b58de2db1d85bda", "scanner": "scanner-primary", "fingerprint": "a12909b43a2fd7a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91d7f1772b33a2cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Produto/SellingPrices.tsx:1"}, "properties": {"repobilityId": "74af0e635874aa84", "scanner": "scanner-primary", "fingerprint": "91d7f1772b33a2cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7b30d63a26d9e7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Auditoria/Index.tsx:1"}, "properties": {"repobilityId": "df45d8a456a313b7", "scanner": "scanner-primary", "fingerprint": "a7b30d63a26d9e7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f78677ef8a91a2a", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Auditoria/Detail.tsx:1"}, "properties": {"repobilityId": "19d62c8c95c02d4b", "scanner": "scanner-primary", "fingerprint": "4f78677ef8a91a2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56352a9a13a10a0e", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Admin/Index.tsx:176"}, "properties": {"repobilityId": "a513e269c44f3883", "scanner": "scanner-primary", "fingerprint": "56352a9a13a10a0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5dafd0de6e645cff", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Admin/ScreenReviewDashboard.tsx:1"}, "properties": {"repobilityId": "a0df11a067b81149", "scanner": "scanner-primary", "fingerprint": "5dafd0de6e645cff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e931891de73c3f4", "level": "note", "message": {"text": "Legacy-named symbol `kb_v2` in resources/js/Pages/Admin/GovernanceV4.tsx:9"}, "properties": {"repobilityId": "03c7ef145895b728", "scanner": "scanner-primary", "fingerprint": "4e931891de73c3f4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6b2a9111ed8b0db9", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Admin/GovernanceV4.tsx:8"}, "properties": {"repobilityId": "11e18120a773f3ba", "scanner": "scanner-primary", "fingerprint": "6b2a9111ed8b0db9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-899edfd16012522d", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Admin/ScreenReview.tsx:1"}, "properties": {"repobilityId": "090aad326a0f91c4", "scanner": "scanner-primary", "fingerprint": "899edfd16012522d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1091e8363fa8e33a", "level": "note", "message": {"text": "Legacy-named symbol `kb_v2` in resources/js/Pages/Admin/_components/SparklineTrend.tsx:7"}, "properties": {"repobilityId": "f77a13de37d09c82", "scanner": "scanner-primary", "fingerprint": "1091e8363fa8e33a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-effd32e3bb47331f", "level": "note", "message": {"text": "Legacy-named symbol `kb_v2` in resources/js/Pages/Admin/_components/BucketSidebar.tsx:20"}, "properties": {"repobilityId": "7538243880115cee", "scanner": "scanner-primary", "fingerprint": "effd32e3bb47331f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-71f2c93ded841d3d", "level": "note", "message": {"text": "Legacy-named symbol `kb_v2` in resources/js/Pages/Admin/_components/governanceV4Types.ts:4"}, "properties": {"repobilityId": "07a3ef063c684e65", "scanner": "scanner-primary", "fingerprint": "71f2c93ded841d3d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-961f4fa6ba93ea13", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/NfeBrasil/Transactions/NfceStatus.tsx:1"}, "properties": {"repobilityId": "7fb9d031c0de126b", "scanner": "scanner-primary", "fingerprint": "961f4fa6ba93ea13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-370f3720cfe6caef", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/NfeBrasil/Manifestacao/Index.tsx:1"}, "properties": {"repobilityId": "facf20477b9bfb55", "scanner": "scanner-primary", "fingerprint": "370f3720cfe6caef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a20e85810e9452f", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Jana/Chat.tsx:1"}, "properties": {"repobilityId": "13a4d3ca19e21881", "scanner": "scanner-primary", "fingerprint": "4a20e85810e9452f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a168c4ac331b9beb", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Jana/Pro.tsx:1"}, "properties": {"repobilityId": "77b56ada7255b846", "scanner": "scanner-primary", "fingerprint": "a168c4ac331b9beb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e44f1ed4c351896e", "level": "none", "message": {"text": "Commented-code block (10 lines) in resources/js/Pages/Jana/Cockpit.tsx:1"}, "properties": {"repobilityId": "a2dc3cba67be6ec8", "scanner": "scanner-primary", "fingerprint": "e44f1ed4c351896e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a535352a89037e1d", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Jana/components/JanaCockpitV2.tsx:1"}, "properties": {"repobilityId": "d113c6451eaa427f", "scanner": "scanner-primary", "fingerprint": "a535352a89037e1d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6296367779b76e53", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Jana/components/JanaAreaHeader.tsx:10"}, "properties": {"repobilityId": "bb529ee2096d7fa2", "scanner": "scanner-primary", "fingerprint": "6296367779b76e53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-462184e2cc92d4b0", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Jana/Admin/Roadmap.tsx:1"}, "properties": {"repobilityId": "00beaeb25405b038", "scanner": "scanner-primary", "fingerprint": "462184e2cc92d4b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-beae107dff229ce2", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Jana/Admin/Governanca/Index.tsx:1"}, "properties": {"repobilityId": "74b6080d15203947", "scanner": "scanner-primary", "fingerprint": "beae107dff229ce2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99709960675f03b2", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Jana/Admin/Custos/Index.tsx:1"}, "properties": {"repobilityId": "ab19890b6b7b7b97", "scanner": "scanner-primary", "fingerprint": "99709960675f03b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab55f4eb8ec971c1", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Jana/Admin/Qualidade/Index.tsx:1"}, "properties": {"repobilityId": "cd14223e35eb35b1", "scanner": "scanner-primary", "fingerprint": "ab55f4eb8ec971c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9ed6014f48faeff", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Jana/_components/AssistantUiChat.tsx:6"}, "properties": {"repobilityId": "9bfdf1082b5f8a4a", "scanner": "scanner-primary", "fingerprint": "b9ed6014f48faeff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad4441c9448956af", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Vestuario/Etiquetas/Index.tsx:1"}, "properties": {"repobilityId": "aeeb7724ee720af4", "scanner": "scanner-primary", "fingerprint": "ad4441c9448956af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ec2ef48214ba857", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Tarefas/Index.tsx:1"}, "properties": {"repobilityId": "8ebb1d3b2e499e1d", "scanner": "scanner-primary", "fingerprint": "7ec2ef48214ba857", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-017129af6995846f", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Purchase/Index.tsx:1"}, "properties": {"repobilityId": "8bf17efd7edbc3f0", "scanner": "scanner-primary", "fingerprint": "017129af6995846f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1dc36f58d1d236d", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Purchase/Edit.tsx:1"}, "properties": {"repobilityId": "3086126c6f3fe415", "scanner": "scanner-primary", "fingerprint": "e1dc36f58d1d236d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22b429bd798741b2", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Purchase/Show.tsx:1"}, "properties": {"repobilityId": "cbbebea8b904f857", "scanner": "scanner-primary", "fingerprint": "22b429bd798741b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00ff52e1b0e2a59b", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Purchase/Create.tsx:1"}, "properties": {"repobilityId": "4b38a983ba8ba1a8", "scanner": "scanner-primary", "fingerprint": "00ff52e1b0e2a59b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e705101f484fc26", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/_Showcase/Components.tsx:1"}, "properties": {"repobilityId": "8d23f8f91512c9f1", "scanner": "scanner-primary", "fingerprint": "4e705101f484fc26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73e028e6b873793d", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Sells/Index.tsx:1"}, "properties": {"repobilityId": "53c25c2a476457fa", "scanner": "scanner-primary", "fingerprint": "73e028e6b873793d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d5185965766916f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/Index.tsx:708"}, "properties": {"repobilityId": "fefbcca052761a4b", "scanner": "scanner-primary", "fingerprint": "8d5185965766916f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-82320214b241f1aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/Edit.tsx:50"}, "properties": {"repobilityId": "9a6fbf8076bb735a", "scanner": "scanner-primary", "fingerprint": "82320214b241f1aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f58915839934495", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/Create.tsx:339"}, "properties": {"repobilityId": "3aefcb25000c7ea4", "scanner": "scanner-primary", "fingerprint": "1f58915839934495", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-acaccf6c6fad6812", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/VdNfseEmitModal.tsx:6"}, "properties": {"repobilityId": "ff4782fb4ec7070b", "scanner": "scanner-primary", "fingerprint": "acaccf6c6fad6812", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fea7fc35ac4866f2", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/SaleAuditTrail.tsx:9"}, "properties": {"repobilityId": "c5fd900b1766350e", "scanner": "scanner-primary", "fingerprint": "fea7fc35ac4866f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-183ba65e6572141f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/SaleAuditTrail.tsx:184"}, "properties": {"repobilityId": "c3182b396f1ed6eb", "scanner": "scanner-primary", "fingerprint": "183ba65e6572141f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-45bc9536e2710306", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Sells/_components/CustomerSearchAutocomplete.tsx:240"}, "properties": {"repobilityId": "6b4d1b6ae8fabdc6", "scanner": "scanner-primary", "fingerprint": "45bc9536e2710306", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eedd2ac32008973d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/CustomerSearchAutocomplete.tsx:131"}, "properties": {"repobilityId": "2f1f417768e6a17b", "scanner": "scanner-primary", "fingerprint": "eedd2ac32008973d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-28b1cdc3eb25e415", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/QuickPaymentPopover.tsx:1"}, "properties": {"repobilityId": "cf578feb0ac08fdb", "scanner": "scanner-primary", "fingerprint": "28b1cdc3eb25e415", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4176c4170dc51f88", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/VdSource.tsx:1"}, "properties": {"repobilityId": "8d02eae7eb48f369", "scanner": "scanner-primary", "fingerprint": "4176c4170dc51f88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa8df2fff0a803a2", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/VdNextActionPanel.tsx:192"}, "properties": {"repobilityId": "72169c0ed1653bd7", "scanner": "scanner-primary", "fingerprint": "aa8df2fff0a803a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e00cc8a5696d4ace", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleTranscriptPDF.tsx:1"}, "properties": {"repobilityId": "545d06eb4ba84ac1", "scanner": "scanner-primary", "fingerprint": "e00cc8a5696d4ace", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45d5ca1d4e9de624", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SellsCheatSheet.tsx:1"}, "properties": {"repobilityId": "b31730a8509d8e87", "scanner": "scanner-primary", "fingerprint": "45d5ca1d4e9de624", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-122843f31b11fb25", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/SellsTabelaUnificada.tsx:4"}, "properties": {"repobilityId": "c8959c4efb0fe46c", "scanner": "scanner-primary", "fingerprint": "122843f31b11fb25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8926af8e7b4f8324", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleOrcamentoA4.tsx:1"}, "properties": {"repobilityId": "038ad69f58334dc0", "scanner": "scanner-primary", "fingerprint": "8926af8e7b4f8324", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ad42ae39605e6aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleReciboPrint80mm.tsx:1"}, "properties": {"repobilityId": "20f5c2cb0dbacb0d", "scanner": "scanner-primary", "fingerprint": "8ad42ae39605e6aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b997065c0e9eb8f", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/QuickPaymentDialog.tsx:8"}, "properties": {"repobilityId": "b342fb5161744170", "scanner": "scanner-primary", "fingerprint": "2b997065c0e9eb8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2bb2ba903369632a", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/QuickAddVehicleSheet.tsx:8"}, "properties": {"repobilityId": "05023a14ba58b4fe", "scanner": "scanner-primary", "fingerprint": "2bb2ba903369632a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e72fd7cabc66bdf", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/CommissionSplitEditor.tsx:1"}, "properties": {"repobilityId": "b5fd196a1aadc733", "scanner": "scanner-primary", "fingerprint": "6e72fd7cabc66bdf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f9ec137feaf475f", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/QuickAddCustomerSheet.tsx:8"}, "properties": {"repobilityId": "eaacfeb0d0f048c0", "scanner": "scanner-primary", "fingerprint": "0f9ec137feaf475f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fc3d0c5f1d9f71e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/QuickAddCustomerSheet.tsx:105"}, "properties": {"repobilityId": "caedae40a5edd38f", "scanner": "scanner-primary", "fingerprint": "1fc3d0c5f1d9f71e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5d02a47848ea22f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleJourneyStepper.tsx:3"}, "properties": {"repobilityId": "ebc72808b6bf0dba", "scanner": "scanner-primary", "fingerprint": "5d02a47848ea22f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2918ff66f5f5a633", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/SaleTimeline.tsx:1"}, "properties": {"repobilityId": "842497baa14acd95", "scanner": "scanner-primary", "fingerprint": "2918ff66f5f5a633", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85526cb7c2e94623", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/SaleTimeline.tsx:101"}, "properties": {"repobilityId": "cd2b563f3a37f14a", "scanner": "scanner-primary", "fingerprint": "85526cb7c2e94623", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3a1784e7db75f38b", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:6"}, "properties": {"repobilityId": "9d7d8655db9ae16b", "scanner": "scanner-primary", "fingerprint": "3a1784e7db75f38b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8dce84a94a9839d7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:221"}, "properties": {"repobilityId": "e25479f4d2c00350", "scanner": "scanner-primary", "fingerprint": "8dce84a94a9839d7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d023d4a4a6b4c486", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Sells/_components/PaymentRow.tsx:6"}, "properties": {"repobilityId": "f30ca75a19e3883f", "scanner": "scanner-primary", "fingerprint": "d023d4a4a6b4c486", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0305750de60ab887", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Sells/_components/SaleAiPanel.tsx:1"}, "properties": {"repobilityId": "bafc4cef29b9a1af", "scanner": "scanner-primary", "fingerprint": "0305750de60ab887", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-148c1d8e56c8f267", "level": "none", "message": {"text": "Commented-code block (9 lines) in resources/js/Pages/Sells/Caixa/Index.tsx:1"}, "properties": {"repobilityId": "b9df5886f3c37717", "scanner": "scanner-primary", "fingerprint": "148c1d8e56c8f267", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b74b56573977712", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Compras/components/AcoesDropdown.tsx:4"}, "properties": {"repobilityId": "fffb350f7305eca8", "scanner": "scanner-primary", "fingerprint": "1b74b56573977712", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae794059c5967d76", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Compras/components/GradeMatrixInput.tsx:10"}, "properties": {"repobilityId": "691954a60a27ec25", "scanner": "scanner-primary", "fingerprint": "ae794059c5967d76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a913e0424bc9a708", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/kb/Index.tsx:1"}, "properties": {"repobilityId": "16da27414e584a4a", "scanner": "scanner-primary", "fingerprint": "a913e0424bc9a708", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ab4abe25fb5876b", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/kb/Index.v2.tsx:1"}, "properties": {"repobilityId": "603ede6124a5e446", "scanner": "scanner-primary", "fingerprint": "2ab4abe25fb5876b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-839fc47889f7fdb5", "level": "none", "message": {"text": "Commented-code block (11 lines) in resources/js/Pages/kb/_lib/graphLayout.ts:36"}, "properties": {"repobilityId": "0e81053ba818d210", "scanner": "scanner-primary", "fingerprint": "839fc47889f7fdb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7bfe97d1ddbefa8", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/Dfe.tsx:1"}, "properties": {"repobilityId": "976dd7010722495c", "scanner": "scanner-primary", "fingerprint": "d7bfe97d1ddbefa8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17510971deff56e5", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/Config.tsx:1"}, "properties": {"repobilityId": "ece092bb41c96d98", "scanner": "scanner-primary", "fingerprint": "17510971deff56e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0314e6adbf0c6433", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/Eventos.tsx:1"}, "properties": {"repobilityId": "e114e17ac08c3359", "scanner": "scanner-primary", "fingerprint": "0314e6adbf0c6433", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-757c4de2e7ebfe46", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/Nfe.tsx:1"}, "properties": {"repobilityId": "9a4c986db295660b", "scanner": "scanner-primary", "fingerprint": "757c4de2e7ebfe46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfede9c03f9a6dcc", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/Nfse.tsx:1"}, "properties": {"repobilityId": "921358f2c88a27b1", "scanner": "scanner-primary", "fingerprint": "cfede9c03f9a6dcc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-770fa4c214bd7307", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/Cockpit.tsx:1"}, "properties": {"repobilityId": "25a4964ebc5b60f9", "scanner": "scanner-primary", "fingerprint": "770fa4c214bd7307", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5fca0eb7a7a3f59", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/Sped.tsx:1"}, "properties": {"repobilityId": "75b78e2d62ef8d8c", "scanner": "scanner-primary", "fingerprint": "f5fca0eb7a7a3f59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d537667785a1faf", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_lib/sefaz-codes.ts:6"}, "properties": {"repobilityId": "769b74f8876ffd67", "scanner": "scanner-primary", "fingerprint": "5d537667785a1faf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fbeac51a56a2ebe6", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_lib/sefaz-actions.ts:6"}, "properties": {"repobilityId": "0b19e401cc4fa361", "scanner": "scanner-primary", "fingerprint": "fbeac51a56a2ebe6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b00752033238634", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_components/NotaDrawer.tsx:1"}, "properties": {"repobilityId": "743269bee7222741", "scanner": "scanner-primary", "fingerprint": "8b00752033238634", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e52dcc4fd615845d", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/Fiscal/_components/CmdKPalette.tsx:3"}, "properties": {"repobilityId": "29f8dfeb16d08ddc", "scanner": "scanner-primary", "fingerprint": "e52dcc4fd615845d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa6c9bf5f12d5e5d", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_components/SendToContabilDrawer.tsx:3"}, "properties": {"repobilityId": "1124ca0008ff9db3", "scanner": "scanner-primary", "fingerprint": "aa6c9bf5f12d5e5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a369445d54c2f08f", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Pages/Fiscal/_components/NotaDrawerV2.tsx:3"}, "properties": {"repobilityId": "f35214e2fe0096f8", "scanner": "scanner-primary", "fingerprint": "a369445d54c2f08f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81b7163ec0640ce5", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/Fiscal/_components/InutilizacaoModal.tsx:4"}, "properties": {"repobilityId": "f838aa572eafcd36", "scanner": "scanner-primary", "fingerprint": "81b7163ec0640ce5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-982c0bd0c98cd390", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/js/Pages/Fiscal/_components/_shared/DrawerBase.tsx:6"}, "properties": {"repobilityId": "8eeb46128c03d203", "scanner": "scanner-primary", "fingerprint": "982c0bd0c98cd390", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c689a6099afefb3", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Pages/superadmin/Usuario360/Index.tsx:1"}, "properties": {"repobilityId": "bb6574fd5a00234e", "scanner": "scanner-primary", "fingerprint": "3c689a6099afefb3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc8bdbcf6351b1c9", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Pages/superadmin/Usuario360/Show.tsx:1"}, "properties": {"repobilityId": "15adc80981e4fc32", "scanner": "scanner-primary", "fingerprint": "dc8bdbcf6351b1c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14ca74e14d4d5fc2", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Lib/clarity.ts:1"}, "properties": {"repobilityId": "a968fd68094f5253", "scanner": "scanner-primary", "fingerprint": "14ca74e14d4d5fc2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a885d11f0682166", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/js/Lib/oimpressoToast.ts:1"}, "properties": {"repobilityId": "0b0c14aad54ca69c", "scanner": "scanner-primary", "fingerprint": "7a885d11f0682166", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70c253b7b27b4d9c", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/Lib/consent.ts:1"}, "properties": {"repobilityId": "967137bd605ef9bc", "scanner": "scanner-primary", "fingerprint": "70c253b7b27b4d9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf621d10bedcf39d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/js/Lib/consent.ts:44"}, "properties": {"repobilityId": "4655931874959a00", "scanner": "scanner-primary", "fingerprint": "cf621d10bedcf39d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-217719b02c5f3156", "level": "none", "message": {"text": "Commented-code block (9 lines) in resources/js/Lib/numberPtBR.ts:9"}, "properties": {"repobilityId": "0fde6414aea0831c", "scanner": "scanner-primary", "fingerprint": "217719b02c5f3156", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2224cdbe8ccf48d1", "level": "none", "message": {"text": "Commented-code block (10 lines) in resources/js/Lib/printSaleReceipt.ts:3"}, "properties": {"repobilityId": "8e66d8e8ef7a832c", "scanner": "scanner-primary", "fingerprint": "2224cdbe8ccf48d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f8311717e0327f7", "level": "none", "message": {"text": "Commented-code block (12 lines) in resources/js/Lib/printServiceOrder.ts:7"}, "properties": {"repobilityId": "fbe679d3557d132a", "scanner": "scanner-primary", "fingerprint": "7f8311717e0327f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efd8fb77c47550be", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/js/Lib/validacoesFiscaisBr.ts:116"}, "properties": {"repobilityId": "20f256264f443551", "scanner": "scanner-primary", "fingerprint": "efd8fb77c47550be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4ae78aa3e886bed", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/plugins/AdminLTE/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js:2949"}, "properties": {"repobilityId": "e04822cb03037ad7", "scanner": "scanner-primary", "fingerprint": "a4ae78aa3e886bed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0823f84ad0aae83", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/plugins/AdminLTE/plugins/fullcalendar/fullcalendar.js:874"}, "properties": {"repobilityId": "b42ccf97f3efb57b", "scanner": "scanner-primary", "fingerprint": "e0823f84ad0aae83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1bfe304c109db7c9", "level": "none", "message": {"text": "Commented-code block (9 lines) in resources/plugins/AdminLTE/plugins/DataTables/JSZip-2.5.0/jszip.js:1132"}, "properties": {"repobilityId": "147ffffdff05fad6", "scanner": "scanner-primary", "fingerprint": "1bfe304c109db7c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c5408c09d80a455", "level": "none", "message": {"text": "Commented-code block (10 lines) in resources/plugins/AdminLTE/plugins/DataTables/DataTables-1.10.16/js/jquery.dataTables.js:1348"}, "properties": {"repobilityId": "10050c026ae6605e", "scanner": "scanner-primary", "fingerprint": "6c5408c09d80a455", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d082b271c7553a77", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/plugins/AdminLTE/plugins/DataTables/Responsive-2.2.0/js/dataTables.responsive.js:374"}, "properties": {"repobilityId": "545c85473a651a81", "scanner": "scanner-primary", "fingerprint": "d082b271c7553a77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d921bbcc1987777d", "level": "none", "message": {"text": "Commented-code block (8 lines) in resources/plugins/AdminLTE/plugins/DataTables/AutoFill-2.2.2/js/dataTables.autoFill.js:841"}, "properties": {"repobilityId": "e468d90747204639", "scanner": "scanner-primary", "fingerprint": "d921bbcc1987777d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17a534f4aa2352ec", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/plugins/AdminLTE/plugins/jQueryUI/jquery-ui.js:14916"}, "properties": {"repobilityId": "b7b6aa0d2bfce593", "scanner": "scanner-primary", "fingerprint": "17a534f4aa2352ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05e1e81bb29e96b9", "level": "none", "message": {"text": "Commented-code block (9 lines) in resources/plugins/jKanban/jKanbanBoard.js:435"}, "properties": {"repobilityId": "8d352c2c6682ba58", "scanner": "scanner-primary", "fingerprint": "05e1e81bb29e96b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4df72ae0a33dcfcf", "level": "note", "message": {"text": "Legacy-named symbol `toLegacy` in resources/plugins/fullcalendar/fullcalendar.min.js:6"}, "properties": {"repobilityId": "46e6d4a006d75c4e", "scanner": "scanner-primary", "fingerprint": "4df72ae0a33dcfcf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2ae1018396fb32bb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/fullcalendar/fullcalendar.min.js:9"}, "properties": {"repobilityId": "8966a7d6ce18123d", "scanner": "scanner-primary", "fingerprint": "2ae1018396fb32bb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-64b799a5967747fa", "level": "note", "message": {"text": "Legacy-named symbol `toLegacy` in resources/plugins/fullcalendar/fullcalendar.d.ts:471"}, "properties": {"repobilityId": "bc162662f18b52fd", "scanner": "scanner-primary", "fingerprint": "64b799a5967747fa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2b1f7065403b504f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/fullcalendar/fullcalendar.d.ts:640"}, "properties": {"repobilityId": "a41a17bbc1e65523", "scanner": "scanner-primary", "fingerprint": "2b1f7065403b504f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2b05eb171e81e919", "level": "note", "message": {"text": "Legacy-named symbol `toLegacy` in resources/plugins/fullcalendar/fullcalendar.js:1579"}, "properties": {"repobilityId": "1dff3c612a0c48b9", "scanner": "scanner-primary", "fingerprint": "2b05eb171e81e919", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d48f07e19bcfa638", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/plugins/fullcalendar/fullcalendar.js:272"}, "properties": {"repobilityId": "482b16c990ae49d6", "scanner": "scanner-primary", "fingerprint": "d48f07e19bcfa638", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-812f99519b1674f5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/fullcalendar/fullcalendar.js:8708"}, "properties": {"repobilityId": "578af9d098a9b6a5", "scanner": "scanner-primary", "fingerprint": "812f99519b1674f5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-40a4f0b35580b6e7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/bootstrap-fileinput/fileinput.min.js:10"}, "properties": {"repobilityId": "2318ecfb2fbb839b", "scanner": "scanner-primary", "fingerprint": "40a4f0b35580b6e7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-15c9c245548bec95", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/plugins/jquery-validation-1.16.0/test/test.js:2170"}, "properties": {"repobilityId": "f96fc0db9d53b962", "scanner": "scanner-primary", "fingerprint": "15c9c245548bec95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-744f9f6fd633eadf", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.9.1.js:1469"}, "properties": {"repobilityId": "ebad268765799065", "scanner": "scanner-primary", "fingerprint": "744f9f6fd633eadf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b42a6fadeacb008d", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.7.2.js:1509"}, "properties": {"repobilityId": "9cf36eaad1dd3899", "scanner": "scanner-primary", "fingerprint": "b42a6fadeacb008d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-118a558015155835", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 resources/plugins/jquery-validation-1.16.0/lib/require.js:19"}, "properties": {"repobilityId": "4b42c8b0c16a6b74", "scanner": "scanner-primary", "fingerprint": "118a558015155835", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b90708a22918ed7d", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.8.3.js:1392"}, "properties": {"repobilityId": "0b6b2d65bcc4e28b", "scanner": "scanner-primary", "fingerprint": "b90708a22918ed7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-edab1c1b9edec529", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-1.11.1.js:18"}, "properties": {"repobilityId": "7f3988bbb52a6699", "scanner": "scanner-primary", "fingerprint": "edab1c1b9edec529", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-037ff1b8d6594cc5", "level": "note", "message": {"text": "Legacy-named symbol `pdataOld` in resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js:5656"}, "properties": {"repobilityId": "370ff5df114153b9", "scanner": "scanner-primary", "fingerprint": "037ff1b8d6594cc5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6a711d6498cdd97d", "level": "none", "message": {"text": "Commented-code block (7 lines) in resources/plugins/jquery-validation-1.16.0/lib/jquery-3.1.1.js:20"}, "properties": {"repobilityId": "2699301c5fd8dad9", "scanner": "scanner-primary", "fingerprint": "6a711d6498cdd97d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a182d530695a7f77", "level": "none", "message": {"text": "Commented-code block (14 lines) in resources/plugins/jquery-validation-1.16.0/src/core.js:276"}, "properties": {"repobilityId": "dca14fe0e2605c0e", "scanner": "scanner-primary", "fingerprint": "a182d530695a7f77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2656b2c403577cf", "level": "none", "message": {"text": "Commented-code block (5 lines) in resources/plugins/jquery-validation-1.16.0/src/additional/iban.js:22"}, "properties": {"repobilityId": "a5ac5468e8178699", "scanner": "scanner-primary", "fingerprint": "a2656b2c403577cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-158500638cffe260", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/design-spec-gen.mjs:4"}, "properties": {"repobilityId": "741617547a26b564", "scanner": "scanner-primary", "fingerprint": "158500638cffe260", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1069eea7cc06b8d", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/casos-results-collect.mjs:5"}, "properties": {"repobilityId": "7c6dc17ac8b3e303", "scanner": "scanner-primary", "fingerprint": "f1069eea7cc06b8d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1f9c2bdb4f0b65b", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/domain-dict-guard.mjs:4"}, "properties": {"repobilityId": "cd66bb0f297cd56a", "scanner": "scanner-primary", "fingerprint": "f1f9c2bdb4f0b65b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66db70fc26bdd169", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/ds-canon-color-guard.mjs:4"}, "properties": {"repobilityId": "d042fcfc7779da1d", "scanner": "scanner-primary", "fingerprint": "66db70fc26bdd169", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c00a1cfc505ac882", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/conformance-gate.mjs:33"}, "properties": {"repobilityId": "18e18e23911b5fc3", "scanner": "scanner-primary", "fingerprint": "c00a1cfc505ac882", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fc81d1996c14bc3", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/no-mock-in-prod.mjs:4"}, "properties": {"repobilityId": "94f8e10a60e1e531", "scanner": "scanner-primary", "fingerprint": "7fc81d1996c14bc3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5cc8b9073dd876e6", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/layout-primitives-guard.mjs:4"}, "properties": {"repobilityId": "c516ab1953849f43", "scanner": "scanner-primary", "fingerprint": "5cc8b9073dd876e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55d540773bbc8512", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/ds-report.mjs:10"}, "properties": {"repobilityId": "b2ba006195ce661e", "scanner": "scanner-primary", "fingerprint": "55d540773bbc8512", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56aff5e7085a700b", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/components-tree-guard.mjs:4"}, "properties": {"repobilityId": "51129edbd1a5ed6c", "scanner": "scanner-primary", "fingerprint": "56aff5e7085a700b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7960a1c8f9d8cf9e", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/gen-mapa-telas.py:58"}, "properties": {"repobilityId": "ae22e9f9dc9103bc", "scanner": "scanner-primary", "fingerprint": "7960a1c8f9d8cf9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fede12dd071641b6", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/casos-coverage-guard.mjs:5"}, "properties": {"repobilityId": "11fb7dd19f67e810", "scanner": "scanner-primary", "fingerprint": "fede12dd071641b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-515015f9ebd501dd", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/ds-ledger.mjs:4"}, "properties": {"repobilityId": "145c2f1d7398f3a6", "scanner": "scanner-primary", "fingerprint": "515015f9ebd501dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de95b83a4fd36e53", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/jana-ragas-runner.py:71"}, "properties": {"repobilityId": "11e51c399b08aab9", "scanner": "scanner-primary", "fingerprint": "de95b83a4fd36e53", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e39d807fc31d2205", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/reuse-index.mjs:11"}, "properties": {"repobilityId": "9647630a33a0ceb1", "scanner": "scanner-primary", "fingerprint": "e39d807fc31d2205", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3946d27cfbfefd9", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/governance/ghost-fix.mjs:4"}, "properties": {"repobilityId": "d1348904414a8d35", "scanner": "scanner-primary", "fingerprint": "f3946d27cfbfefd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a00e753e2c7b84b4", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/governance/protection-drift.mjs:6"}, "properties": {"repobilityId": "a7e3a467c64385a2", "scanner": "scanner-primary", "fingerprint": "a00e753e2c7b84b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e5f7e2e60360e88", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/governance/knowledge-drift.mjs:4"}, "properties": {"repobilityId": "dc99c22ca5f845f3", "scanner": "scanner-primary", "fingerprint": "1e5f7e2e60360e88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54d8823c3e4cb82b", "level": "note", "message": {"text": "Legacy-named symbol `anchor_format_v1` in scripts/governance/anchor-lint.mjs:132"}, "properties": {"repobilityId": "10da882e3c663520", "scanner": "scanner-primary", "fingerprint": "54d8823c3e4cb82b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-90038a8384e2f118", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/governance/anchor-lint.mjs:5"}, "properties": {"repobilityId": "b348570193ec06d3", "scanner": "scanner-primary", "fingerprint": "90038a8384e2f118", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14301854d6395fc2", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/governance/sdd-scorecard.mjs:10"}, "properties": {"repobilityId": "1c9e56af8bcfbc73", "scanner": "scanner-primary", "fingerprint": "14301854d6395fc2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-840e446c7b8e567a", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/governance/gate-selftest.mjs:5"}, "properties": {"repobilityId": "560d814ecbd569f4", "scanner": "scanner-primary", "fingerprint": "840e446c7b8e567a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-beb1ec67db3fd09b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/governance/memory-health.mjs:210"}, "properties": {"repobilityId": "87a837f7c19a3858", "scanner": "scanner-primary", "fingerprint": "beb1ec67db3fd09b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b686cb4350b687ec", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/governance/ledger-check.mjs:5"}, "properties": {"repobilityId": "a19e67239b9aa91b", "scanner": "scanner-primary", "fingerprint": "b686cb4350b687ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f9e15ad4265a9a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/cc-watcher/index.js:10"}, "properties": {"repobilityId": "56c04b37950b33e6", "scanner": "scanner-primary", "fingerprint": "6f9e15ad4265a9a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7ea3b1ddd75e8cf", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/tests/foundation-ratchet.mjs:4"}, "properties": {"repobilityId": "33ecd8cbbd25f22d", "scanner": "scanner-primary", "fingerprint": "a7ea3b1ddd75e8cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61381e54565e6c9c", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/curador/apply.mjs:2"}, "properties": {"repobilityId": "8f6428218a0b0e5c", "scanner": "scanner-primary", "fingerprint": "61381e54565e6c9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-552b434c9dbc58c0", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/curador/report.mjs:2"}, "properties": {"repobilityId": "94256f3118de0f15", "scanner": "scanner-primary", "fingerprint": "552b434c9dbc58c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5038a891f7712d34", "level": "note", "message": {"text": "Legacy-named symbol `delphi_legacy` in scripts/legacy-migration/import-empresas.py:114"}, "properties": {"repobilityId": "6b930ef481efaa99", "scanner": "scanner-primary", "fingerprint": "5038a891f7712d34", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f7c89b2359eadf52", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/legacy-migration/import-notas-fiscais.py:546"}, "properties": {"repobilityId": "ab7b927c78aa1154", "scanner": "scanner-primary", "fingerprint": "f7c89b2359eadf52", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f66e4bc578e3af9", "level": "note", "message": {"text": "Legacy-named symbol `contact_profile_legacy` in scripts/legacy-migration/dump-pessoas-schema.py:279"}, "properties": {"repobilityId": "2919d47ee63e38b9", "scanner": "scanner-primary", "fingerprint": "7f66e4bc578e3af9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3002aa4ec3e1f90f", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/legacy-migration/import-produtos.py:100"}, "properties": {"repobilityId": "ef1bb0421578f785", "scanner": "scanner-primary", "fingerprint": "3002aa4ec3e1f90f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35ebb5876f1e3dec", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/legacy-migration/migrar-martinho.py:50"}, "properties": {"repobilityId": "7407ba1cdac0ee38", "scanner": "scanner-primary", "fingerprint": "35ebb5876f1e3dec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-21bf3f46564265d2", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/legacy-migration/migrar-tudo.py:63"}, "properties": {"repobilityId": "8b9bd4913d29c74b", "scanner": "scanner-primary", "fingerprint": "21bf3f46564265d2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5de88fb9bb8d6ce1", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/legacy-migration/daemon-sync-martinho.py:157"}, "properties": {"repobilityId": "ddbba67b177b74a1", "scanner": "scanner-primary", "fingerprint": "5de88fb9bb8d6ce1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf2ee27cce6aeadd", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/legacy-migration/daemon-sync-martinho.py:99"}, "properties": {"repobilityId": "29458cad2b308a90", "scanner": "scanner-primary", "fingerprint": "cf2ee27cce6aeadd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-08e4720a6a2b09cd", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/legacy-migration/import-financeiro.py:209"}, "properties": {"repobilityId": "ffb04e820d136158", "scanner": "scanner-primary", "fingerprint": "08e4720a6a2b09cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6c62a51b9f8f930", "level": "note", "message": {"text": "Legacy-named symbol `delphi_legacy` in scripts/legacy-migration/import-contas-bancarias.py:189"}, "properties": {"repobilityId": "3c9a0592356ce1ca", "scanner": "scanner-primary", "fingerprint": "d6c62a51b9f8f930", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bd889c09215b0ad0", "level": "note", "message": {"text": "Legacy-named symbol `responsavel_codigo_legacy` in scripts/legacy-migration/import-vendas.py:286"}, "properties": {"repobilityId": "94e1891c1e23155a", "scanner": "scanner-primary", "fingerprint": "bd889c09215b0ad0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ef10f0df0c6628e7", "level": "note", "message": {"text": "Legacy-named symbol `cod_produto_legacy` in scripts/legacy-migration/import-compras.py:293"}, "properties": {"repobilityId": "b86a45f6d19fa2bf", "scanner": "scanner-primary", "fingerprint": "ef10f0df0c6628e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6d8d435d162af964", "level": "note", "message": {"text": "Legacy-named symbol `_find_account_id_by_legacy` in scripts/legacy-migration/lib/mysql_writer.py:130"}, "properties": {"repobilityId": "b784a899a0e3c3f0", "scanner": "scanner-primary", "fingerprint": "6d8d435d162af964", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3e2292b9c16540d2", "level": "note", "message": {"text": "Legacy-named symbol `_fb_legacy` in scripts/legacy-migration/lib/firebird_reader.py:49"}, "properties": {"repobilityId": "bc36969f4ee3ba42", "scanner": "scanner-primary", "fingerprint": "3e2292b9c16540d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f188e4947333c7fa", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/legacy-migration/lib/firebird_reader.py:128"}, "properties": {"repobilityId": "eda4fdbcd5dafc0f", "scanner": "scanner-primary", "fingerprint": "f188e4947333c7fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc0eb59b7809d4cc", "level": "note", "message": {"text": "Legacy-named symbol `upper_old` in scripts/legacy-migration/lib/ddl_parser.py:348"}, "properties": {"repobilityId": "358deacfcb3c7873", "scanner": "scanner-primary", "fingerprint": "dc0eb59b7809d4cc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-442eaf8308955295", "level": "note", "message": {"text": "Legacy-named symbol `conta_bancaria_legacy` in scripts/legacy-migration/sql-wr2-pessoas/gerar-sql-subscriptions.py:52"}, "properties": {"repobilityId": "42133190def07690", "scanner": "scanner-primary", "fingerprint": "442eaf8308955295", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1e5105a0b5c12734", "level": "note", "message": {"text": "Legacy-named symbol `conta_bancaria_legacy` in scripts/legacy-migration/sql-wr2-pessoas/gerar-sql-etapa1-cancelados-ativos.py:70"}, "properties": {"repobilityId": "29e3da34b7063c6c", "scanner": "scanner-primary", "fingerprint": "1e5105a0b5c12734", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f79e1f66d60fa007", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/dual-brain/watchers/remote-log-watcher.js:60"}, "properties": {"repobilityId": "35544e440d6e0828", "scanner": "scanner-primary", "fingerprint": "f79e1f66d60fa007", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a71492d8708f2334", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/dual-brain/watchers/remote-git-watcher.js:66"}, "properties": {"repobilityId": "32684302ad1561f2", "scanner": "scanner-primary", "fingerprint": "a71492d8708f2334", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cdf5f4047771c7d8", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/audit/sqlite-test-corruptors.mjs:5"}, "properties": {"repobilityId": "78133f12c0da45d6", "scanner": "scanner-primary", "fingerprint": "cdf5f4047771c7d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86b7017eee6184a6", "level": "note", "message": {"text": "Legacy-named symbol `maskDigitPosMapOld` in doc/assets/backend/js/app.min.js:1"}, "properties": {"repobilityId": "49341eaf2001c460", "scanner": "scanner-primary", "fingerprint": "86b7017eee6184a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-17783e49f730a051", "level": "note", "message": {"text": "Legacy-named symbol `pdataOld` in doc/assets/backend/js/app.js:5636"}, "properties": {"repobilityId": "08f0d093173e5637", "scanner": "scanner-primary", "fingerprint": "17783e49f730a051", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d33d9094f779626c", "level": "none", "message": {"text": "Commented-code block (7 lines) in doc/assets/backend/js/app.js:20"}, "properties": {"repobilityId": "0f3d37b598bb76ea", "scanner": "scanner-primary", "fingerprint": "d33d9094f779626c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0d5c1b5ba97fb2f", "level": "none", "message": {"text": "Commented-code block (6 lines) in memory/requisitos/_DesignSystem/ui_kits/_BACKUP-NAO-USAR-cowork-2026-04-27/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "acbad5cde89d089f", "scanner": "scanner-primary", "fingerprint": "f0d5c1b5ba97fb2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a60d8ccf9acb6b2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 memory/requisitos/_DesignSystem/ui_kits/_BACKUP-NAO-USAR-cowork-2026-04-27/laravel-panel.jsx:91"}, "properties": {"repobilityId": "716d0725f65af3aa", "scanner": "scanner-primary", "fingerprint": "2a60d8ccf9acb6b2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-88f103a20198c354", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/governance-eval/grade.mjs:4"}, "properties": {"repobilityId": "1117bd6fe17825f1", "scanner": "scanner-primary", "fingerprint": "88f103a20198c354", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-737fb7847208ebf2", "level": "none", "message": {"text": "Commented-code block (7 lines) in .claude/governance-eval/scorecard.mjs:4"}, "properties": {"repobilityId": "d2ffac2637087f48", "scanner": "scanner-primary", "fingerprint": "737fb7847208ebf2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78c3c0f185be0076", "level": "none", "message": {"text": "Commented-code block (8 lines) in .claude/hooks/git-base-freshness-guard.mjs:6"}, "properties": {"repobilityId": "e9e5d5c99d3bcaf5", "scanner": "scanner-primary", "fingerprint": "78c3c0f185be0076", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21e98ab08dd288ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/hooks/block-pr-without-approval.mjs:8"}, "properties": {"repobilityId": "6a3eeda4a399e5c6", "scanner": "scanner-primary", "fingerprint": "21e98ab08dd288ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1974e8db87bd9471", "level": "none", "message": {"text": "Commented-code block (6 lines) in .claude/hooks/audit-creates-tasks.mjs:13"}, "properties": {"repobilityId": "db9ed65a00e83981", "scanner": "scanner-primary", "fingerprint": "1974e8db87bd9471", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca94acdf289e3478", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/hooks/block-askq-execution-menu.mjs:5"}, "properties": {"repobilityId": "355756f0ee1c3207", "scanner": "scanner-primary", "fingerprint": "ca94acdf289e3478", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6bfd2f9833d0b8b", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/hooks/force-r12-closing-signal.mjs:18"}, "properties": {"repobilityId": "70740faa2ffd72fd", "scanner": "scanner-primary", "fingerprint": "d6bfd2f9833d0b8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9db6b3185dc082f5", "level": "none", "message": {"text": "Commented-code block (8 lines) in .claude/hooks/design-handoff-reprocess.mjs:22"}, "properties": {"repobilityId": "2b6aa09d48deacdf", "scanner": "scanner-primary", "fingerprint": "9db6b3185dc082f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97214e9f7706212e", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/workflows/sdd-fase-2.js:1"}, "properties": {"repobilityId": "ae0d545c32382c27", "scanner": "scanner-primary", "fingerprint": "97214e9f7706212e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ce5af497745d04f", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/js/pos.js:282"}, "properties": {"repobilityId": "0e21601aa1b4b5e6", "scanner": "scanner-primary", "fingerprint": "2ce5af497745d04f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5afd184351485154", "level": "none", "message": {"text": "Commented-code block (12 lines) in public/js/labels.js:50"}, "properties": {"repobilityId": "d97620a4c3ed856f", "scanner": "scanner-primary", "fingerprint": "5afd184351485154", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41ea3652bfe57bfe", "level": "none", "message": {"text": "Commented-code block (8 lines) in public/js/common.js:145"}, "properties": {"repobilityId": "ac7bf4bb4333671b", "scanner": "scanner-primary", "fingerprint": "41ea3652bfe57bfe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f871b779c09a4779", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/js/sell_return.js:85"}, "properties": {"repobilityId": "3bf643e060441d57", "scanner": "scanner-primary", "fingerprint": "f871b779c09a4779", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c061758ddd995a6b", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/cowork-preview/erp-shell-v2/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "42f163d641176b00", "scanner": "scanner-primary", "fingerprint": "c061758ddd995a6b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64b797fe5acafec8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/cowork-preview/erp-shell-v2/laravel-panel.jsx:91"}, "properties": {"repobilityId": "e09ef351df2732ce", "scanner": "scanner-primary", "fingerprint": "64b797fe5acafec8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8fc3e831b33e52b6", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell-v2/data.jsx:11"}, "properties": {"repobilityId": "083c4cad098c81f5", "scanner": "scanner-primary", "fingerprint": "8fc3e831b33e52b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-890bdadea3c557e5", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/cowork-preview/erp-shell-v2/fiscal-page.jsx:1"}, "properties": {"repobilityId": "d0aa753217e340d1", "scanner": "scanner-primary", "fingerprint": "890bdadea3c557e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4196858e2f4632f5", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/cowork-preview/erp-shell-v2/app.jsx:4"}, "properties": {"repobilityId": "83877345328128eb", "scanner": "scanner-primary", "fingerprint": "4196858e2f4632f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24159fa1b3801134", "level": "none", "message": {"text": "Commented-code block (10 lines) in public/cowork-preview/erp-shell-v2/fiscal-data.jsx:1"}, "properties": {"repobilityId": "e888abe14fa84361", "scanner": "scanner-primary", "fingerprint": "24159fa1b3801134", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-987506ebc6d0149e", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/kb-trouble-lib.jsx:6"}, "properties": {"repobilityId": "99f00051594df11f", "scanner": "scanner-primary", "fingerprint": "987506ebc6d0149e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf2be7a8c07748ce", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/kb-trouble-editor.jsx:6"}, "properties": {"repobilityId": "1d855b69abdf0725", "scanner": "scanner-primary", "fingerprint": "bf2be7a8c07748ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9463999aae8e0bc", "level": "none", "message": {"text": "Commented-code block (8 lines) in public/cowork-preview/erp-shell/vendas-page.jsx:65"}, "properties": {"repobilityId": "7492bcacfe924cad", "scanner": "scanner-primary", "fingerprint": "e9463999aae8e0bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07b81f1a2883382d", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/cowork-preview/erp-shell/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "117bb639ca230cf4", "scanner": "scanner-primary", "fingerprint": "07b81f1a2883382d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f08f246d9bf6b950", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/cowork-preview/erp-shell/financeiro-output.jsx:1"}, "properties": {"repobilityId": "1c52bc762b233ea5", "scanner": "scanner-primary", "fingerprint": "f08f246d9bf6b950", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6084b0022c10c0ed", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/cowork-preview/erp-shell/laravel-panel.jsx:91"}, "properties": {"repobilityId": "2e846f06e8686ced", "scanner": "scanner-primary", "fingerprint": "6084b0022c10c0ed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-827dd7c0bd5f69dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/pg-sells-cobranca-preview.jsx:121"}, "properties": {"repobilityId": "236ddfa067f617a0", "scanner": "scanner-primary", "fingerprint": "827dd7c0bd5f69dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94027b432b247937", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/cowork-preview/erp-shell/financeiro-ai.jsx:1"}, "properties": {"repobilityId": "4b3b1863b627d23f", "scanner": "scanner-primary", "fingerprint": "94027b432b247937", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b61e4fff8a7c0cd8", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/vendas-output.jsx:11"}, "properties": {"repobilityId": "82583216aa8663a2", "scanner": "scanner-primary", "fingerprint": "b61e4fff8a7c0cd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8414efcb261b865", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/data.jsx:11"}, "properties": {"repobilityId": "e28d50890b39b924", "scanner": "scanner-primary", "fingerprint": "f8414efcb261b865", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1888fba6e78f7e49", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/cowork-preview/erp-shell/financeiro-curation.jsx:1"}, "properties": {"repobilityId": "6b37a19c692c3b71", "scanner": "scanner-primary", "fingerprint": "1888fba6e78f7e49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb869eee18f01e4c", "level": "none", "message": {"text": "Commented-code block (9 lines) in public/cowork-preview/erp-shell/inbox-page.jsx:11"}, "properties": {"repobilityId": "32ae4475b6167e22", "scanner": "scanner-primary", "fingerprint": "fb869eee18f01e4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab9838d4d00ec210", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/cowork-preview/erp-shell/app.jsx:4"}, "properties": {"repobilityId": "f1e3c44846a1a23b", "scanner": "scanner-primary", "fingerprint": "ab9838d4d00ec210", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc46d779b52766d0", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/pg-shell-adapters.jsx:6"}, "properties": {"repobilityId": "cd6d8941f073b216", "scanner": "scanner-primary", "fingerprint": "dc46d779b52766d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9ffa1a6cc7b7018", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/cowork-preview/erp-shell/pg-vendas-integration.jsx:3"}, "properties": {"repobilityId": "766c42566477c9c0", "scanner": "scanner-primary", "fingerprint": "d9ffa1a6cc7b7018", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5860c90a8d54eb6f", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/cowork-preview/erp-shell/kb-paths.jsx:229"}, "properties": {"repobilityId": "11db0a90a9350633", "scanner": "scanner-primary", "fingerprint": "5860c90a8d54eb6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b539a3adb5233c4b", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/prototipos/kb/kb-trouble-lib.jsx:6"}, "properties": {"repobilityId": "813a3191ab60ded5", "scanner": "scanner-primary", "fingerprint": "b539a3adb5233c4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38ce9cb2ffcb00be", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/prototipos/kb/kb-trouble-editor.jsx:6"}, "properties": {"repobilityId": "9114d758f744af9e", "scanner": "scanner-primary", "fingerprint": "38ce9cb2ffcb00be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f85e6e12857b0d5", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/prototipos/kb/kb-paths.jsx:229"}, "properties": {"repobilityId": "546524b5adbf616b", "scanner": "scanner-primary", "fingerprint": "5f85e6e12857b0d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-825b2f0e931f2ca5", "level": "none", "message": {"text": "Commented-code block (9 lines) in e2e/oficina-uc06-gate-etapa.spec.ts:3"}, "properties": {"repobilityId": "0a7f60b12feb4111", "scanner": "scanner-primary", "fingerprint": "825b2f0e931f2ca5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f5c7f7ef3ebb287", "level": "none", "message": {"text": "Commented-code block (10 lines) in e2e/oficina-os-funcional-fluxo.spec.ts:121"}, "properties": {"repobilityId": "f3961fd7259dc75c", "scanner": "scanner-primary", "fingerprint": "3f5c7f7ef3ebb287", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-642ed2a453ab99d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/sells-venda-balcao.spec.ts:12"}, "properties": {"repobilityId": "12038debf677de73", "scanner": "scanner-primary", "fingerprint": "642ed2a453ab99d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eca07477e056515a", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/global-setup.ts:7"}, "properties": {"repobilityId": "799ba21c666c24ba", "scanner": "scanner-primary", "fingerprint": "eca07477e056515a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64bc033a45ab26f1", "level": "note", "message": {"text": "34 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "dab9f6f977f9c414", "scanner": "scanner-primary", "fingerprint": "64bc033a45ab26f1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "cbdc4743e3a4f38f", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "6ba67f3937f48232", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "245474cd07200a6c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "040ca874b53a97e5", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "4605713ab466578f", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "c70439f360391ad8", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "c04df369954dd251", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "3cdb3e0f8ba25325", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "e2f6f4a6a2a7d76b", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "3f9406ee877082ef", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "63631a25fc775d89", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "77b6b363076bf6fc", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "098f0843c85499a0", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "21ba43e43ed337ac", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "ae4f7feb5ecbd9cc", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "0de2d20c95a84d09", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "606418612636c676", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "de34013d50782a36", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "0ab908272724f4a2", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "1e85982f80efcc00", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-3310a46d8cee7768", "level": "error", "message": {"text": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/prototipos-individuais/prototipos/sells-index/laravel-panel.jsx:91)"}, "properties": {"repobilityId": "db9fe88022f838f9", "scanner": "scanner-primary", "fingerprint": "3310a46d8cee7768", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-53ba12a81b268de2", "level": "error", "message": {"text": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/jsx-individuais/laravel-panel.jsx:91)"}, "properties": {"repobilityId": "91423fb4f276b4c9", "scanner": "scanner-primary", "fingerprint": "53ba12a81b268de2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aff55aefb3886cb1", "level": "error", "message": {"text": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/laravel-panel.jsx:91)"}, "properties": {"repobilityId": "e724ae24b44b08bb", "scanner": "scanner-primary", "fingerprint": "aff55aefb3886cb1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ce2d7b45948a14a6", "level": "error", "message": {"text": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/uploads/Oimpresso-handoff(1)/project/uploads/Oimpresso ERP Conunica\u00e7\u00e3o Visual. Ultimotopo/laravel-panel.jsx:91)"}, "properties": {"repobilityId": "2e2738b92df3f960", "scanner": "scanner-primary", "fingerprint": "ce2d7b45948a14a6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0bc0769bc8392a00", "level": "error", "message": {"text": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-19-handoff-bundle/project/backups/2026-05-14-pre-handoff/laravel-panel.jsx:91)"}, "properties": {"repobilityId": "ad18b39f5c06fdd1", "scanner": "scanner-primary", "fingerprint": "0bc0769bc8392a00", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-09bbbae815b99acb", "level": "error", "message": {"text": "Dangling fetch: GET /api/... (prototipo-ui/_BACKUP-NAO-USAR/snapshots-cowork/_cowork-export-2026-05-15/laravel-panel.jsx:91)"}, "properties": {"repobilityId": "42ce5c3c0dc421d3", "scanner": "scanner-primary", "fingerprint": "09bbbae815b99acb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2d19d189962227fa", "level": "error", "message": {"text": "Dangling fetch: GET /api/... (prototipo-ui/cowork-2026-05-26-comunicacao-visual/project/laravel-panel.jsx:91)"}, "properties": {"repobilityId": "9c8f132c6b739d47", "scanner": "scanner-primary", "fingerprint": "2d19d189962227fa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-90b9b3c48127f053", "level": "error", "message": {"text": "Dangling fetch: GET /api/... (memory/requisitos/_DesignSystem/ui_kits/_BACKUP-NAO-USAR-cowork-2026-04-27/laravel-panel.jsx:91)"}, "properties": {"repobilityId": "83e27cb2021878a6", "scanner": "scanner-primary", "fingerprint": "90b9b3c48127f053", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-77ec4f2334856d9f", "level": "error", "message": {"text": "Dangling fetch: GET /api/... (public/cowork-preview/erp-shell-v2/laravel-panel.jsx:91)"}, "properties": {"repobilityId": "858062067b458a56", "scanner": "scanner-primary", "fingerprint": "77ec4f2334856d9f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e72360e689594ec1", "level": "error", "message": {"text": "Dangling fetch: GET /api/... (public/cowork-preview/erp-shell/laravel-panel.jsx:91)"}, "properties": {"repobilityId": "4b144606374b9be4", "scanner": "scanner-primary", "fingerprint": "e72360e689594ec1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-56d03ca873ef4fba", "level": "error", "message": {"text": "Dangling fetch: GET /project-mgmt/search?q=${encodeURIComponent(query.trim())} (resources/js/Components/CommandPalette.tsx:118)"}, "properties": {"repobilityId": "ed9743bc2c3570f9", "scanner": "scanner-primary", "fingerprint": "56d03ca873ef4fba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c269840dafdb8c8e", "level": "error", "message": {"text": "Dangling fetch: GET /project-mgmt/board/users/suggest?q=${encodeURIComponent(mention.query)} (resources/js/Components/MentionInput.tsx:114)"}, "properties": {"repobilityId": "85870962022b016a", "scanner": "scanner-primary", "fingerprint": "c269840dafdb8c8e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d1236151dbbce59e", "level": "error", "message": {"text": "Dangling fetch: POST /user/preferences/theme (resources/js/Hooks/useTheme.ts:70)"}, "properties": {"repobilityId": "7ab0d88f11175266", "scanner": "scanner-primary", "fingerprint": "d1236151dbbce59e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bf2656bbb826f412", "level": "error", "message": {"text": "Dangling fetch: GET /nfe-brasil/api/transactions/${transactionId}/emissoes (resources/js/Hooks/useEmissoesPorTransaction.ts:69)"}, "properties": {"repobilityId": "be0dba24f372bc3f", "scanner": "scanner-primary", "fingerprint": "bf2656bbb826f412", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7dc22e69af18dc97", "level": "error", "message": {"text": "Dangling fetch: GET /nfe-brasil/api/transactions/${txId}/nfe-status (resources/js/Hooks/useNfceStatus.ts:88)"}, "properties": {"repobilityId": "d3163aa5e7b5ad55", "scanner": "scanner-primary", "fingerprint": "7dc22e69af18dc97", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f56f768b3116b51e", "level": "error", "message": {"text": "Dangling fetch: GET /essentials/view-todo-${todo.id}-share-docs (resources/js/Pages/Essentials/Todo/Show.tsx:227)"}, "properties": {"repobilityId": "637b045acf84a2ec", "scanner": "scanner-primary", "fingerprint": "f56f768b3116b51e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-599759cc84d0db38", "level": "error", "message": {"text": "Dangling fetch: GET /essentials/get-new-messages?last_chat_time=${encodeURIComponent(last)} (resources/js/Pages/Essentials/Messages/Index.tsx:99)"}, "properties": {"repobilityId": "a83a9d8ff49e6a1a", "scanner": "scanner-primary", "fingerprint": "599759cc84d0db38", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fc1faadc982b6db3", "level": "error", "message": {"text": "Dangling fetch: DELETE /essentials/messages/${deleteTarget.id} (resources/js/Pages/Essentials/Messages/Index.tsx:139)"}, "properties": {"repobilityId": "fe2cfd4649380a85", "scanner": "scanner-primary", "fingerprint": "fc1faadc982b6db3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5106f2c6481731b0", "level": "error", "message": {"text": "Dangling fetch: GET /essentials/document-share/${doc.id}/edit (resources/js/Pages/Essentials/Documents/Index.tsx:157)"}, "properties": {"repobilityId": "3271214214b7bc00", "scanner": "scanner-primary", "fingerprint": "5106f2c6481731b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2974c78f9ade9329", "level": "error", "message": {"text": "Dangling fetch: PUT /essentials/document-share (resources/js/Pages/Essentials/Documents/Index.tsx:207)"}, "properties": {"repobilityId": "8d45aa596b7e1715", "scanner": "scanner-primary", "fingerprint": "2974c78f9ade9329", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4e6f17f139049456", "level": "error", "message": {"text": "Dangling fetch: GET /consulta-os/buscar?${params} (resources/js/Pages/ConsultaOs/Index.tsx:30)"}, "properties": {"repobilityId": "a6d018f58037c070", "scanner": "scanner-primary", "fingerprint": "4e6f17f139049456", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6870296613b231f6", "level": "error", "message": {"text": "Dangling fetch: POST /settings/payment-gateways/${g.id}/toggle (resources/js/Pages/Settings/PaymentGateways/Index.tsx:108)"}, "properties": {"repobilityId": "fe70aaa3f07f88b5", "scanner": "scanner-primary", "fingerprint": "6870296613b231f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e593544defa4d20e", "level": "error", "message": {"text": "Dangling fetch: POST /settings/payment-gateways/health-check (resources/js/Pages/Settings/PaymentGateways/Index.tsx:126)"}, "properties": {"repobilityId": "1ff09126f0d4c5d1", "scanner": "scanner-primary", "fingerprint": "e593544defa4d20e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ff2aa75a2785c306", "level": "error", "message": {"text": "Dangling fetch: GET /settings/payment-gateways/${gateway.id}/webhook-events (resources/js/Pages/Settings/PaymentGateways/_components/DrawerGateway.tsx:96)"}, "properties": {"repobilityId": "87533bd91aa0d27a", "scanner": "scanner-primary", "fingerprint": "ff2aa75a2785c306", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-427148af9ef485d7", "level": "error", "message": {"text": "Dangling fetch: GET /settings/payment-gateways/${gateway.id}/quota (resources/js/Pages/Settings/PaymentGateways/_components/DrawerGateway.tsx:116)"}, "properties": {"repobilityId": "a7f13ad7319f6d96", "scanner": "scanner-primary", "fingerprint": "427148af9ef485d7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-13c96737f8ca5646", "level": "error", "message": {"text": "Dangling fetch: GET /settings/payment-gateways/${gateway.id}/history (resources/js/Pages/Settings/PaymentGateways/_components/DrawerGateway.tsx:135)"}, "properties": {"repobilityId": "ff5260c76bc1919f", "scanner": "scanner-primary", "fingerprint": "13c96737f8ca5646", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4d24d6b067f8401e", "level": "error", "message": {"text": "Dangling fetch: POST /settings/payment-gateways/${gateway.id}/health-check (resources/js/Pages/Settings/PaymentGateways/_components/DrawerGateway.tsx:224)"}, "properties": {"repobilityId": "eb041454ed986679", "scanner": "scanner-primary", "fingerprint": "4d24d6b067f8401e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8bb9d6bbc8b4a76d", "level": "error", "message": {"text": "Dangling fetch: POST /memcofre/chat/ask (resources/js/Pages/MemCofre/Chat.tsx:89)"}, "properties": {"repobilityId": "ca9f348441fb3d10", "scanner": "scanner-primary", "fingerprint": "8bb9d6bbc8b4a76d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-25f70d3eaedee4e8", "level": "error", "message": {"text": "Dangling fetch: POST /memcofre/chat/new (resources/js/Pages/MemCofre/Chat.tsx:125)"}, "properties": {"repobilityId": "9222a910772199da", "scanner": "scanner-primary", "fingerprint": "25f70d3eaedee4e8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e2968a55a37014f8", "level": "error", "message": {"text": "Dangling fetch: GET /docs/memoria/file?key=${encodeURIComponent(key)} (resources/js/Pages/MemCofre/Memoria.tsx:89)"}, "properties": {"repobilityId": "30533ba310658f4a", "scanner": "scanner-primary", "fingerprint": "e2968a55a37014f8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5244212719bbe8f3", "level": "error", "message": {"text": "Dangling fetch: PATCH /project-mgmt/my-work/${taskId}/status (resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:163)"}, "properties": {"repobilityId": "89b415aa69221896", "scanner": "scanner-primary", "fingerprint": "5244212719bbe8f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4871b28f3ccb139c", "level": "error", "message": {"text": "Dangling fetch: POST /project-mgmt/my-work/inbox/${id}/read (resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:182)"}, "properties": {"repobilityId": "1fe5e8f257f2d8a5", "scanner": "scanner-primary", "fingerprint": "4871b28f3ccb139c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3f86a4a1ae2f9c9a", "level": "error", "message": {"text": "Dangling fetch: POST /project-mgmt/my-work/inbox/read-all (resources/js/Pages/ProjectMgmt/MyWork/Index.tsx:199)"}, "properties": {"repobilityId": "a7f5b0d331a77054", "scanner": "scanner-primary", "fingerprint": "3f86a4a1ae2f9c9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d42557e4e3ee15e5", "level": "error", "message": {"text": "Dangling fetch: PATCH /project-mgmt/triage/${taskId}/assign (resources/js/Pages/ProjectMgmt/Triage/Index.tsx:135)"}, "properties": {"repobilityId": "9f6c0506810c5e62", "scanner": "scanner-primary", "fingerprint": "d42557e4e3ee15e5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-67e239b151810130", "level": "error", "message": {"text": "Dangling fetch: PATCH /project-mgmt/inbox/${id}/read (resources/js/Pages/ProjectMgmt/Inbox/Index.tsx:138)"}, "properties": {"repobilityId": "dea9db2353815a00", "scanner": "scanner-primary", "fingerprint": "67e239b151810130", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0f2b898b4fcbb4a9", "level": "error", "message": {"text": "Dangling fetch: PATCH /project-mgmt/inbox/read-all (resources/js/Pages/ProjectMgmt/Inbox/Index.tsx:157)"}, "properties": {"repobilityId": "56654188b7c12541", "scanner": "scanner-primary", "fingerprint": "0f2b898b4fcbb4a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2204f34ee1bfda9c", "level": "error", "message": {"text": "Dangling fetch: POST /project-mgmt/backlog/bulk (resources/js/Pages/ProjectMgmt/Backlog/Index.tsx:141)"}, "properties": {"repobilityId": "1115ab9faf31c745", "scanner": "scanner-primary", "fingerprint": "2204f34ee1bfda9c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-330628df1cc7c113", "level": "error", "message": {"text": "Dangling fetch: PATCH /project-mgmt/board/${taskId}/status (resources/js/Pages/ProjectMgmt/Board/Index.tsx:180)"}, "properties": {"repobilityId": "2d1568b477517c35", "scanner": "scanner-primary", "fingerprint": "330628df1cc7c113", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-384a76854b36c3cd", "level": "error", "message": {"text": "Dangling fetch: GET /project-mgmt/board/${taskId}/detail (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:211)"}, "properties": {"repobilityId": "54432d71f676e65e", "scanner": "scanner-primary", "fingerprint": "384a76854b36c3cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-265c719a2ffe2cde", "level": "error", "message": {"text": "Dangling fetch: POST /project-mgmt/board/${taskId}/subtask (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:252)"}, "properties": {"repobilityId": "34ced07c1b1fa157", "scanner": "scanner-primary", "fingerprint": "265c719a2ffe2cde", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0d4d5b8d5463bd61", "level": "error", "message": {"text": "Dangling fetch: PATCH /project-mgmt/board/${subtask.task_id}/status (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:291)"}, "properties": {"repobilityId": "6eca8974cc6c7b05", "scanner": "scanner-primary", "fingerprint": "0d4d5b8d5463bd61", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-22e1363571ac8837", "level": "error", "message": {"text": "Dangling fetch: POST /project-mgmt/board/${taskId}/comment (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:331)"}, "properties": {"repobilityId": "d93505b9063939eb", "scanner": "scanner-primary", "fingerprint": "22e1363571ac8837", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-934078d412b6353e", "level": "error", "message": {"text": "Dangling fetch: GET /project-mgmt/board/${taskId}/watch (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:379)"}, "properties": {"repobilityId": "b33b575d2860b026", "scanner": "scanner-primary", "fingerprint": "934078d412b6353e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d3c838525ef0c9db", "level": "error", "message": {"text": "Dangling fetch: GET /project-mgmt/board/${taskId}/detail (resources/js/Pages/ProjectMgmt/Board/DetailSheet.tsx:389)"}, "properties": {"repobilityId": "02a12fb5e5cea70f", "scanner": "scanner-primary", "fingerprint": "d3c838525ef0c9db", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-48e867de3dd81ff1", "level": "error", "message": {"text": "Dangling fetch: POST /ads/admin/meta-skills/validate (resources/js/Pages/ads/Admin/MetaSkills.tsx:212)"}, "properties": {"repobilityId": "0f26973537899182", "scanner": "scanner-primary", "fingerprint": "48e867de3dd81ff1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e5b7a72a90666d06", "level": "error", "message": {"text": "Dangling fetch: POST /ads/admin/tools/${tool.name}/execute (resources/js/Pages/ads/Admin/Tools.tsx:146)"}, "properties": {"repobilityId": "c9379f022f58e3a8", "scanner": "scanner-primary", "fingerprint": "e5b7a72a90666d06", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9e01d9949bcf06d9", "level": "error", "message": {"text": "Dangling fetch: GET /whatsapp/settings/meta-oauth-init (resources/js/Pages/Whatsapp/Settings.tsx:113)"}, "properties": {"repobilityId": "fe3ba4e896fe767e", "scanner": "scanner-primary", "fingerprint": "9e01d9949bcf06d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1bf8abae6d528df8", "level": "error", "message": {"text": "Dangling fetch: POST /whatsapp/settings/meta-embedded-callback (resources/js/Pages/Whatsapp/Settings.tsx:189)"}, "properties": {"repobilityId": "a3a2ec06c217c9e8", "scanner": "scanner-primary", "fingerprint": "1bf8abae6d528df8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2e30270ba766d0cc", "level": "error", "message": {"text": "Dangling fetch: GET /atendimento/customer/${encodeURIComponent(ext)}/profile (resources/js/Pages/Whatsapp/_components/CustomerMemoryBlock.tsx:131)"}, "properties": {"repobilityId": "24653ed6d860f4fe", "scanner": "scanner-primary", "fingerprint": "2e30270ba766d0cc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-81f7df210d852e0e", "level": "error", "message": {"text": "Dangling fetch: POST /atendimento/feedback/capture (resources/js/Pages/Whatsapp/_components/CaptureFeedbackSheet.tsx:160)"}, "properties": {"repobilityId": "7ae04b546710f55a", "scanner": "scanner-primary", "fingerprint": "81f7df210d852e0e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4e5cd805d23f8eb1", "level": "error", "message": {"text": "Dangling fetch: POST /comunicacao-visual/api/calcular (resources/js/Pages/ComunicacaoVisual/Index.tsx:176)"}, "properties": {"repobilityId": "db7c629d11b66f0e", "scanner": "scanner-primary", "fingerprint": "4e5cd805d23f8eb1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ae6b0008a6cc26b9", "level": "error", "message": {"text": "Dangling fetch: GET /financeiro/unificado/saldo-sparkline (resources/js/Pages/Financeiro/Unificado/Index.tsx:606)"}, "properties": {"repobilityId": "7d3241c8f753e3c1", "scanner": "scanner-primary", "fingerprint": "ae6b0008a6cc26b9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2f23e07f085f1384", "level": "error", "message": {"text": "Dangling fetch: GET /financeiro/unificado/${tituloId}/anexos (resources/js/Pages/Financeiro/Unificado/_components/FinAnexosPanel.tsx:68)"}, "properties": {"repobilityId": "56c8dea4f8426b9c", "scanner": "scanner-primary", "fingerprint": "2f23e07f085f1384", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-488f107622043670", "level": "error", "message": {"text": "Dangling fetch: GET /financeiro/unificado/sugerir-valor?contraparte=${encodeURIComponent(val)}&tipo=${tipo} (resources/js/Pages/Financeiro/Unificado/_components/TituloCreateSheet.tsx:131)"}, "properties": {"repobilityId": "b559a54f658e61c7", "scanner": "scanner-primary", "fingerprint": "488f107622043670", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c1bb0c3df2862f32", "level": "error", "message": {"text": "Dangling fetch: GET /financeiro/unificado/buscar-cliente?q=${encodeURIComponent(value)} (resources/js/Pages/Financeiro/Unificado/_components/ClienteCombobox.tsx:57)"}, "properties": {"repobilityId": "9bcb2cdecf032e01", "scanner": "scanner-primary", "fingerprint": "c1bb0c3df2862f32", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8ae4d3869ece91e4", "level": "error", "message": {"text": "Dangling fetch: POST /financeiro/unificado/ocr-boleto (resources/js/Pages/Financeiro/Unificado/_components/FinOcrBoletoSheet.tsx:89)"}, "properties": {"repobilityId": "6012f56073814dab", "scanner": "scanner-primary", "fingerprint": "8ae4d3869ece91e4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4c673e89a660e8d3", "level": "error", "message": {"text": "Dangling fetch: GET /recurring-billing/${subId}/events (resources/js/Pages/RecurringBilling/Index.tsx:1204)"}, "properties": {"repobilityId": "f9470e90e64817ed", "scanner": "scanner-primary", "fingerprint": "4c673e89a660e8d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-57f4414df6e9442c", "level": "error", "message": {"text": "Dangling fetch: POST /recurring-billing/${subId}/events (resources/js/Pages/RecurringBilling/Index.tsx:1221)"}, "properties": {"repobilityId": "3bf8bcbc250ca476", "scanner": "scanner-primary", "fingerprint": "57f4414df6e9442c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7cb5b343c6647a55", "level": "error", "message": {"text": "Dangling fetch: GET /recurring-billing/${subId}/events (resources/js/Pages/RecurringBilling/Index.tsx:1236)"}, "properties": {"repobilityId": "412393d3dbab2b82", "scanner": "scanner-primary", "fingerprint": "7cb5b343c6647a55", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3a90de227986afe3", "level": "error", "message": {"text": "Dangling fetch: GET /recurring-billing/contacts/search?q=${encodeURIComponent(query.trim())} (resources/js/Pages/RecurringBilling/Index.tsx:1466)"}, "properties": {"repobilityId": "5f2aea0137dbdd9a", "scanner": "scanner-primary", "fingerprint": "3a90de227986afe3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-07fa1398d1c79b52", "level": "error", "message": {"text": "Dangling fetch: DELETE /contacts/${deleteTarget.id} (resources/js/Pages/Cliente/Index.tsx:470)"}, "properties": {"repobilityId": "a2b6574d0fe4e0d8", "scanner": "scanner-primary", "fingerprint": "07fa1398d1c79b52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fb8711dbc1a9421a", "level": "error", "message": {"text": "Dangling fetch: POST /cliente/draft (resources/js/Pages/Cliente/Index.tsx:576)"}, "properties": {"repobilityId": "e6e46e0efc6fb260", "scanner": "scanner-primary", "fingerprint": "fb8711dbc1a9421a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-db80f85ebd240f65", "level": "error", "message": {"text": "Dangling fetch: GET /contacts/lookup/cnpj/${cpfCnpjDigits} (resources/js/Pages/Cliente/_form/DadosFiscaisBRSection.tsx:103)"}, "properties": {"repobilityId": "b72891d4aebad89a", "scanner": "scanner-primary", "fingerprint": "db80f85ebd240f65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1ed364a380e296bc", "level": "error", "message": {"text": "Dangling fetch: GET /cliente/${contactId}/subscriptions-json (resources/js/Pages/Cliente/_show/SubscriptionsTab.tsx:67)"}, "properties": {"repobilityId": "db20d7ebeca3a2c2", "scanner": "scanner-primary", "fingerprint": "1ed364a380e296bc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-01c7135e918a1ad2", "level": "error", "message": {"text": "Dangling fetch: GET /cliente/${contactId}/rewards-json (resources/js/Pages/Cliente/_show/RewardPointsTab.tsx:66)"}, "properties": {"repobilityId": "987c444cd21361c1", "scanner": "scanner-primary", "fingerprint": "01c7135e918a1ad2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-796a77f486cad0a9", "level": "error", "message": {"text": "Dangling fetch: GET /cliente/${contactId}/payments-json (resources/js/Pages/Cliente/_show/PaymentsTab.tsx:107)"}, "properties": {"repobilityId": "85c6484a7ec4ecac", "scanner": "scanner-primary", "fingerprint": "796a77f486cad0a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0a670af20202410b", "level": "error", "message": {"text": "Dangling fetch: POST /ledger-discount (resources/js/Pages/Cliente/_show/AddDiscountModal.tsx:61)"}, "properties": {"repobilityId": "b484c12a415c17f0", "scanner": "scanner-primary", "fingerprint": "0a670af20202410b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-727e1bcea0d54379", "level": "error", "message": {"text": "Dangling fetch: GET /contacts/update-status/${contactId} (resources/js/Pages/Cliente/_show/ActionsMenu.tsx:69)"}, "properties": {"repobilityId": "cfe89ea3ca5dda8e", "scanner": "scanner-primary", "fingerprint": "727e1bcea0d54379", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-85bae91d32c0937a", "level": "error", "message": {"text": "Dangling fetch: POST /contacts/${contactId} (resources/js/Pages/Cliente/_show/ActionsMenu.tsx:92)"}, "properties": {"repobilityId": "425ae850fb37d901", "scanner": "scanner-primary", "fingerprint": "85bae91d32c0937a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-928d27693938e695", "level": "error", "message": {"text": "Dangling fetch: POST /contacts/send-ledger (resources/js/Pages/Cliente/_show/LedgerTab.tsx:131)"}, "properties": {"repobilityId": "2866b57a09fe3553", "scanner": "scanner-primary", "fingerprint": "928d27693938e695", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2b75d3db7529f252", "level": "error", "message": {"text": "Dangling fetch: GET /cliente/${contactId}/anexos (resources/js/Pages/Cliente/_show/DocumentsTab.tsx:105)"}, "properties": {"repobilityId": "91220c2786ce4f69", "scanner": "scanner-primary", "fingerprint": "2b75d3db7529f252", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-891817e344137e66", "level": "error", "message": {"text": "Dangling fetch: POST /cliente/${contactId}/anexos (resources/js/Pages/Cliente/_show/DocumentsTab.tsx:185)"}, "properties": {"repobilityId": "599f7d5e0f7144c3", "scanner": "scanner-primary", "fingerprint": "891817e344137e66", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dd56e138faa609a3", "level": "error", "message": {"text": "Dangling fetch: POST /cliente/${contactId}/anexos/${docId} (resources/js/Pages/Cliente/_show/DocumentsTab.tsx:216)"}, "properties": {"repobilityId": "e0fd316f9c3338c8", "scanner": "scanner-primary", "fingerprint": "dd56e138faa609a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-af9e49cbaf37b79d", "level": "error", "message": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/contato (resources/js/Pages/Cliente/_drawer/ContatoTab.tsx:138)"}, "properties": {"repobilityId": "37ec41d6fe631db5", "scanner": "scanner-primary", "fingerprint": "af9e49cbaf37b79d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0fda2dd99ddafb4b", "level": "error", "message": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/identificacao (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:176)"}, "properties": {"repobilityId": "56e83cad43053978", "scanner": "scanner-primary", "fingerprint": "0fda2dd99ddafb4b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ce6eb3e7965fd544", "level": "error", "message": {"text": "Dangling fetch: GET /cliente/lookup/cnpj/${digits} (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:323)"}, "properties": {"repobilityId": "c8ba1c5f8322ae91", "scanner": "scanner-primary", "fingerprint": "ce6eb3e7965fd544", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-68245f7ae3947231", "level": "error", "message": {"text": "Dangling fetch: GET /cliente/lookup/cnpj/${digits}/sefaz?uf=${encodeURIComponent(ufInicial)} (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:333)"}, "properties": {"repobilityId": "d15fdbe4c1bd0d52", "scanner": "scanner-primary", "fingerprint": "68245f7ae3947231", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-88d23163045317f3", "level": "error", "message": {"text": "Dangling fetch: GET /cliente/lookup/cnpj/${digits}/sefaz?uf=${encodeURIComponent(ufFinal)} (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:390)"}, "properties": {"repobilityId": "634deff2fdb4644c", "scanner": "scanner-primary", "fingerprint": "88d23163045317f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ef2d035f1784c563", "level": "error", "message": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/endereco (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:448)"}, "properties": {"repobilityId": "7e302eaa8c1c672a", "scanner": "scanner-primary", "fingerprint": "ef2d035f1784c563", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-be73b27c7b5a9ce0", "level": "error", "message": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/contato (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:470)"}, "properties": {"repobilityId": "d60783c7363e5c86", "scanner": "scanner-primary", "fingerprint": "be73b27c7b5a9ce0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-02c83a8782023fe4", "level": "error", "message": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/identificacao (resources/js/Pages/Cliente/_drawer/IdentificacaoTab.tsx:497)"}, "properties": {"repobilityId": "3f60510c66620e8f", "scanner": "scanner-primary", "fingerprint": "02c83a8782023fe4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a158bd8317bec90d", "level": "error", "message": {"text": "Dangling fetch: POST /cliente/${contactId}/ia/${endpoint} (resources/js/Pages/Cliente/_drawer/IATab.tsx:121)"}, "properties": {"repobilityId": "562a2155aa73c0df", "scanner": "scanner-primary", "fingerprint": "a158bd8317bec90d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2ae14cb80a1ac7a2", "level": "error", "message": {"text": "Dangling fetch: GET /cliente/${contact.id}/auditoria?page=${page}&per_page=${PER_PAGE} (resources/js/Pages/Cliente/_drawer/AuditoriaTab.tsx:110)"}, "properties": {"repobilityId": "b18e17aadc66f668", "scanner": "scanner-primary", "fingerprint": "2ae14cb80a1ac7a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9ddad81dddd61ddc", "level": "error", "message": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/comercial (resources/js/Pages/Cliente/_drawer/ComercialTab.tsx:142)"}, "properties": {"repobilityId": "0f83d18c8ceef885", "scanner": "scanner-primary", "fingerprint": "9ddad81dddd61ddc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-64b1acd9de787a74", "level": "error", "message": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/endereco (resources/js/Pages/Cliente/_drawer/EnderecoTab.tsx:168)"}, "properties": {"repobilityId": "ab75ed37beefaf17", "scanner": "scanner-primary", "fingerprint": "64b1acd9de787a74", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6c3ec0e489b56757", "level": "error", "message": {"text": "Dangling fetch: GET /cliente/lookup/cep/${digits} (resources/js/Pages/Cliente/_drawer/EnderecoTab.tsx:243)"}, "properties": {"repobilityId": "98cfa8554826e9de", "scanner": "scanner-primary", "fingerprint": "6c3ec0e489b56757", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2747811be64adf9b", "level": "error", "message": {"text": "Dangling fetch: GET /cliente/${contactId}/enderecos (resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:114)"}, "properties": {"repobilityId": "99e3f74f46b9df36", "scanner": "scanner-primary", "fingerprint": "2747811be64adf9b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-12dfa14644a89a86", "level": "error", "message": {"text": "Dangling fetch: GET /cliente/lookup/cep/${digits} (resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:169)"}, "properties": {"repobilityId": "5efaf1057f6d174e", "scanner": "scanner-primary", "fingerprint": "12dfa14644a89a86", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-45ebd19ff5458297", "level": "error", "message": {"text": "Dangling fetch: DELETE /cliente/${contactId}/enderecos/${id} (resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:237)"}, "properties": {"repobilityId": "2c4e6ccbc35ed84d", "scanner": "scanner-primary", "fingerprint": "45ebd19ff5458297", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d102fe6f42e825b9", "level": "error", "message": {"text": "Dangling fetch: PATCH /cliente/${contactId}/enderecos/${id} (resources/js/Pages/Cliente/_drawer/EnderecosEntregaList.tsx:251)"}, "properties": {"repobilityId": "d1550995a6cd0ad6", "scanner": "scanner-primary", "fingerprint": "d102fe6f42e825b9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-98ec2c7e2d983bbb", "level": "error", "message": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/classificacao (resources/js/Pages/Cliente/_drawer/ClassificacaoTab.tsx:177)"}, "properties": {"repobilityId": "dc49302c51f85aec", "scanner": "scanner-primary", "fingerprint": "98ec2c7e2d983bbb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-15bce34324f8db92", "level": "error", "message": {"text": "Dangling fetch: PATCH /cliente/${contact.id}/papeis (resources/js/Pages/Cliente/_drawer/ClassificacaoTab.tsx:302)"}, "properties": {"repobilityId": "0408159e6a450068", "scanner": "scanner-primary", "fingerprint": "15bce34324f8db92", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3ef66b9f88c04194", "level": "error", "message": {"text": "Dangling fetch: GET /products/list?${params.toString()} (resources/js/Pages/Repair/JobSheet/AddParts.tsx:115)"}, "properties": {"repobilityId": "2fc8c507785166df", "scanner": "scanner-primary", "fingerprint": "3ef66b9f88c04194", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-60e4de243bb5a35b", "level": "error", "message": {"text": "Dangling fetch: GET /team-mcp/cc-sessions/${uuid} (resources/js/Pages/team-mcp/CcSessions/Index.tsx:219)"}, "properties": {"repobilityId": "fa1fc3b130eda581", "scanner": "scanner-primary", "fingerprint": "60e4de243bb5a35b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3f6a2fef0bcc6384", "level": "error", "message": {"text": "Dangling fetch: PATCH /team-mcp/tasks/${id}/status (resources/js/Pages/team-mcp/Tasks/Index.tsx:112)"}, "properties": {"repobilityId": "4751eb229c9cc275", "scanner": "scanner-primary", "fingerprint": "3f6a2fef0bcc6384", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ea6d230c4896380d", "level": "error", "message": {"text": "Dangling fetch: POST /team-mcp/team/${member.id}/token (resources/js/Pages/team-mcp/Team/Index.tsx:172)"}, "properties": {"repobilityId": "044ba872d51dcc30", "scanner": "scanner-primary", "fingerprint": "ea6d230c4896380d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7d07ae53620d0db1", "level": "error", "message": {"text": "Dangling fetch: POST /team-mcp/team/${member.id}/dxt (resources/js/Pages/team-mcp/Team/Index.tsx:208)"}, "properties": {"repobilityId": "eddafe3293c0ae00", "scanner": "scanner-primary", "fingerprint": "7d07ae53620d0db1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-973471d5335b470c", "level": "error", "message": {"text": "Dangling fetch: GET /team-mcp/team/${user.id}/tokens (resources/js/Pages/team-mcp/Team/Index.tsx:566)"}, "properties": {"repobilityId": "02ec84ac66965c3b", "scanner": "scanner-primary", "fingerprint": "973471d5335b470c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3e3c67ad9ee735fa", "level": "error", "message": {"text": "Dangling fetch: DELETE /team-mcp/team/${user.id}/token/${t.id} (resources/js/Pages/team-mcp/Team/Index.tsx:591)"}, "properties": {"repobilityId": "c4f6e2099caba884", "scanner": "scanner-primary", "fingerprint": "3e3c67ad9ee735fa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c63c987ad62677ae", "level": "error", "message": {"text": "Dangling fetch: POST /team-mcp/team/${user.id}/quota (resources/js/Pages/team-mcp/Team/Index.tsx:712)"}, "properties": {"repobilityId": "44d75790b93e93a7", "scanner": "scanner-primary", "fingerprint": "c63c987ad62677ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cb5e24ab4160ac21", "level": "error", "message": {"text": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId} (resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceOrderRichSheet.tsx:205)"}, "properties": {"repobilityId": "0ba525ecddbdc09f", "scanner": "scanner-primary", "fingerprint": "cb5e24ab4160ac21", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-465fb73243629ab5", "level": "error", "message": {"text": "Dangling fetch: DELETE /oficina-auto/ordens-servico/${data.id}/items/${item.id} (resources/js/Pages/OficinaAuto/ProducaoOficina/_components/ServiceOrderRichSheet.tsx:258)"}, "properties": {"repobilityId": "b2cbdd18cb3afc09", "scanner": "scanner-primary", "fingerprint": "465fb73243629ab5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0e9d10edfa2903e3", "level": "error", "message": {"text": "Dangling fetch: DELETE /oficina-auto/ordens-servico/${order.id}/items/${item.id} (resources/js/Pages/OficinaAuto/ServiceOrders/Edit.tsx:137)"}, "properties": {"repobilityId": "733219e6e9bfb7b3", "scanner": "scanner-primary", "fingerprint": "0e9d10edfa2903e3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c9011586f3ddf0aa", "level": "error", "message": {"text": "Dangling fetch: DELETE /oficina-auto/ordens-servico/${order.id}/items/${item.id} (resources/js/Pages/OficinaAuto/ServiceOrders/Show.tsx:107)"}, "properties": {"repobilityId": "e78e9cb2274d032d", "scanner": "scanner-primary", "fingerprint": "c9011586f3ddf0aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b78ec358e411ba55", "level": "error", "message": {"text": "Dangling fetch: POST /oficina-auto/service-orders/${pending.subjectId}/fsm/execute (resources/js/Pages/OficinaAuto/ServiceOrders/Board.tsx:431)"}, "properties": {"repobilityId": "d014695b686d2733", "scanner": "scanner-primary", "fingerprint": "b78ec358e411ba55", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fd68152bd4be83d9", "level": "error", "message": {"text": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId}/fsm/actions (resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStagePipeline.tsx:68)"}, "properties": {"repobilityId": "4403439137c37253", "scanner": "scanner-primary", "fingerprint": "fd68152bd4be83d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6d58abacbaeaeac0", "level": "error", "message": {"text": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId}/history (resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderTimeline.tsx:83)"}, "properties": {"repobilityId": "d5a2c0d9e4d1f7a8", "scanner": "scanner-primary", "fingerprint": "6d58abacbaeaeac0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eaf0b0519e57ef50", "level": "error", "message": {"text": "Dangling fetch: POST /oficina-auto/service-orders/${serviceOrderId}/fsm/start-pipeline (resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderFsmActionPanel.tsx:127)"}, "properties": {"repobilityId": "a4c2bb4fbb559d00", "scanner": "scanner-primary", "fingerprint": "eaf0b0519e57ef50", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d5e2783587435a12", "level": "error", "message": {"text": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId}/fsm/actions (resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderFsmActionPanel.tsx:197)"}, "properties": {"repobilityId": "224c048d080fc599", "scanner": "scanner-primary", "fingerprint": "d5e2783587435a12", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d02fa9388f7cd7ac", "level": "error", "message": {"text": "Dangling fetch: POST /oficina-auto/service-orders/${serviceOrderId}/fsm/execute (resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderFsmActionPanel.tsx:230)"}, "properties": {"repobilityId": "3dd02ad3441aa4a1", "scanner": "scanner-primary", "fingerprint": "d02fa9388f7cd7ac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-971250b9d518e01f", "level": "error", "message": {"text": "Dangling fetch: GET /oficina-auto/service-orders/${serviceOrderId}/fsm/gate (resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStageGate.tsx:89)"}, "properties": {"repobilityId": "dd6d119f04884eff", "scanner": "scanner-primary", "fingerprint": "971250b9d518e01f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-47724280d71b020d", "level": "error", "message": {"text": "Dangling fetch: POST /oficina-auto/service-orders/${serviceOrderId}/fsm/execute (resources/js/Pages/OficinaAuto/ServiceOrders/_components/ServiceOrderStageGate.tsx:132)"}, "properties": {"repobilityId": "3623cd20c03aa4f6", "scanner": "scanner-primary", "fingerprint": "47724280d71b020d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4b56eef7e296f280", "level": "error", "message": {"text": "Dangling fetch: POST /oficina-auto/ordens-servico/${serviceOrderId}/dvi/${dvi.id}/to-orcamento (resources/js/Pages/OficinaAuto/ServiceOrders/_components/DviBudgetSection.tsx:59)"}, "properties": {"repobilityId": "5399ed2d8c9c6606", "scanner": "scanner-primary", "fingerprint": "4b56eef7e296f280", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f033c3108e4091c3", "level": "error", "message": {"text": "Dangling fetch: POST /oficina-auto/veiculos/consulta-placa (resources/js/Pages/OficinaAuto/Vehicles/Create.tsx:84)"}, "properties": {"repobilityId": "fb4a743c4b3f5a67", "scanner": "scanner-primary", "fingerprint": "f033c3108e4091c3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ce0c48678069401d", "level": "error", "message": {"text": "Dangling fetch: GET /nfe-brasil/manifestacao/${dfeId}/itens (resources/js/Pages/NfeBrasil/Manifestacao/_components/LinkedItens.tsx:28)"}, "properties": {"repobilityId": "061c72c27ebb6075", "scanner": "scanner-primary", "fingerprint": "ce0c48678069401d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ab2118e1ae05f281", "level": "error", "message": {"text": "Dangling fetch: GET /nfe-brasil/manifestacao/${dfeId}/eventos (resources/js/Pages/NfeBrasil/Manifestacao/_components/LinkedHistorico.tsx:25)"}, "properties": {"repobilityId": "694f999bdb209701", "scanner": "scanner-primary", "fingerprint": "ab2118e1ae05f281", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-61841ff01ff1f1cd", "level": "error", "message": {"text": "Dangling fetch: POST /ia/conversas/${conversaId}/mensagens/stream (resources/js/Pages/Jana/_components/AssistantUiChat.tsx:350)"}, "properties": {"repobilityId": "4506ad5fe8dd9ecf", "scanner": "scanner-primary", "fingerprint": "61841ff01ff1f1cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c47d0b02413cfd16", "level": "error", "message": {"text": "Dangling fetch: POST /vestuario/etiquetas/lote/${format} (resources/js/Pages/Vestuario/Etiquetas/Index.tsx:104)"}, "properties": {"repobilityId": "6a9f0e830034b00a", "scanner": "scanner-primary", "fingerprint": "c47d0b02413cfd16", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9bc9a6d890edb3a8", "level": "error", "message": {"text": "Dangling fetch: GET /sells-list-json?${params.toString()} (resources/js/Pages/Sells/Index.tsx:708)"}, "properties": {"repobilityId": "8ac800aca6e705d6", "scanner": "scanner-primary", "fingerprint": "9bc9a6d890edb3a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9b6f807d5129f340", "level": "error", "message": {"text": "Dangling fetch: GET /products/list?${params.toString()} (resources/js/Pages/Sells/Create.tsx:427)"}, "properties": {"repobilityId": "4caf29b41607db10", "scanner": "scanner-primary", "fingerprint": "9b6f807d5129f340", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6e71626879084cfb", "level": "error", "message": {"text": "Dangling fetch: POST /nfse/transactions/${venda.id}/emitir (resources/js/Pages/Sells/_components/VdNfseEmitModal.tsx:134)"}, "properties": {"repobilityId": "65761a7061708e9b", "scanner": "scanner-primary", "fingerprint": "6e71626879084cfb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5434822e30d20bae", "level": "error", "message": {"text": "Dangling fetch: GET /contacts/customers?${params.toString()} (resources/js/Pages/Sells/_components/CustomerSearchAutocomplete.tsx:131)"}, "properties": {"repobilityId": "9de0e0b2e43d47c0", "scanner": "scanner-primary", "fingerprint": "5434822e30d20bae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e4c31c74c7bb725c", "level": "error", "message": {"text": "Dangling fetch: POST /sells/${saleId}/quick-payment (resources/js/Pages/Sells/_components/QuickPaymentPopover.tsx:110)"}, "properties": {"repobilityId": "dc4c5165f3df49bc", "scanner": "scanner-primary", "fingerprint": "e4c31c74c7bb725c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b9b69b56fd418649", "level": "error", "message": {"text": "Dangling fetch: GET /api/sells/${saleId}/fsm-actions (resources/js/Pages/Sells/_components/VdNextActionPanel.tsx:114)"}, "properties": {"repobilityId": "63cc2b3949054ed8", "scanner": "scanner-primary", "fingerprint": "b9b69b56fd418649", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b0a94e9a7f057b62", "level": "error", "message": {"text": "Dangling fetch: POST /sells/${saleId}/fsm-action (resources/js/Pages/Sells/_components/VdNextActionPanel.tsx:143)"}, "properties": {"repobilityId": "e883b6514aedef71", "scanner": "scanner-primary", "fingerprint": "b0a94e9a7f057b62", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-db3809dcab2ca51f", "level": "error", "message": {"text": "Dangling fetch: POST /sells/${transactionId}/create-os (resources/js/Pages/Sells/_components/CriarOsButton.tsx:56)"}, "properties": {"repobilityId": "035c608206a85c76", "scanner": "scanner-primary", "fingerprint": "db3809dcab2ca51f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c15e63aadc4d3f8f", "level": "error", "message": {"text": "Dangling fetch: POST /sells/${saleId}/quick-payment (resources/js/Pages/Sells/_components/QuickPaymentDialog.tsx:103)"}, "properties": {"repobilityId": "bc6c1a2363c3be76", "scanner": "scanner-primary", "fingerprint": "c15e63aadc4d3f8f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6025e8b1f9d22cb2", "level": "error", "message": {"text": "Dangling fetch: POST /contacts (resources/js/Pages/Sells/_components/QuickAddCustomerSheet.tsx:105)"}, "properties": {"repobilityId": "756c8e5fbddc0b77", "scanner": "scanner-primary", "fingerprint": "6025e8b1f9d22cb2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a97d69c65f88fec0", "level": "error", "message": {"text": "Dangling fetch: POST /sells/${venda.id}/emitir-cobranca (resources/js/Pages/Sells/_components/CobrancaDrawer.tsx:66)"}, "properties": {"repobilityId": "07d9163fbc29fe64", "scanner": "scanner-primary", "fingerprint": "a97d69c65f88fec0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-768148c7ba607345", "level": "error", "message": {"text": "Dangling fetch: GET /products/list?${params.toString()} (resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:221)"}, "properties": {"repobilityId": "d83ab487554e54c3", "scanner": "scanner-primary", "fingerprint": "768148c7ba607345", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d34ad4dc4cf10706", "level": "error", "message": {"text": "Dangling fetch: GET /products/list?${params.toString()} (resources/js/Pages/Sells/_components/ProductSearchAutocomplete.tsx:324)"}, "properties": {"repobilityId": "fa23f644eb16e3ef", "scanner": "scanner-primary", "fingerprint": "d34ad4dc4cf10706", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-63ceb067a900fb5a", "level": "error", "message": {"text": "Dangling fetch: GET /sells/${saleId}/sheet-data (resources/js/Pages/Sells/_components/SaleSheet.tsx:222)"}, "properties": {"repobilityId": "a5dd7dfff176ba99", "scanner": "scanner-primary", "fingerprint": "63ceb067a900fb5a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c02bcfccf5096260", "level": "error", "message": {"text": "Dangling fetch: POST /sells/${saleId}/quick-payment (resources/js/Pages/Sells/_components/SaleSheet.tsx:253)"}, "properties": {"repobilityId": "0aa0c976fc2fcdae", "scanner": "scanner-primary", "fingerprint": "c02bcfccf5096260", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c6494298988fade1", "level": "error", "message": {"text": "Dangling fetch: POST /nfe-brasil/transactions/${venda.id}/emitir (resources/js/Pages/Sells/_components/VdNfeEmitModal.tsx:155)"}, "properties": {"repobilityId": "7380714b6731a05f", "scanner": "scanner-primary", "fingerprint": "c6494298988fade1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2534ddc9ee995fd7", "level": "error", "message": {"text": "Dangling fetch: POST /sells/${saleId}/ai-ask (resources/js/Pages/Sells/_components/SaleAiPanel.tsx:76)"}, "properties": {"repobilityId": "622d3a502805a974", "scanner": "scanner-primary", "fingerprint": "2534ddc9ee995fd7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-726f74dc86c8dbca", "level": "error", "message": {"text": "Dangling fetch: POST /nfe-brasil/transactions/${saleId}/emitir (resources/js/Pages/Sells/_components/FiscalSection.tsx:38)"}, "properties": {"repobilityId": "d6feb29fbff4d521", "scanner": "scanner-primary", "fingerprint": "726f74dc86c8dbca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-65c3d568c24e0cf7", "level": "error", "message": {"text": "Dangling fetch: POST /nfe-brasil/emissoes/${emissaoId}/reenviar-email (resources/js/Pages/Sells/_components/FiscalSection.tsx:66)"}, "properties": {"repobilityId": "024982834e81a999", "scanner": "scanner-primary", "fingerprint": "65c3d568c24e0cf7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-03c9aca4020aeca6", "level": "error", "message": {"text": "Dangling fetch: POST /sells/${saleId}/fsm-start-pipeline (resources/js/Pages/Sells/_components/FsmActionPanel.tsx:91)"}, "properties": {"repobilityId": "a0a93ee3d745dc07", "scanner": "scanner-primary", "fingerprint": "03c9aca4020aeca6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0e4badcabd3ac119", "level": "error", "message": {"text": "Dangling fetch: GET /api/sells/${saleId}/fsm-actions (resources/js/Pages/Sells/_components/FsmActionPanel.tsx:157)"}, "properties": {"repobilityId": "d48ad07b70216d02", "scanner": "scanner-primary", "fingerprint": "0e4badcabd3ac119", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-552a875a1c377610", "level": "error", "message": {"text": "Dangling fetch: POST /sells/${saleId}/fsm-action (resources/js/Pages/Sells/_components/FsmActionPanel.tsx:197)"}, "properties": {"repobilityId": "7043df79a3051690", "scanner": "scanner-primary", "fingerprint": "552a875a1c377610", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ab599404642a55c9", "level": "error", "message": {"text": "Dangling fetch: GET /kb/${slug}/show (resources/js/Pages/kb/Index.tsx:247)"}, "properties": {"repobilityId": "5e8660b829de4759", "scanner": "scanner-primary", "fingerprint": "ab599404642a55c9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-913c1fe69bebcd63", "level": "error", "message": {"text": "Dangling fetch: DELETE /kb/${confirmDelete.slug} (resources/js/Pages/kb/Index.tsx:275)"}, "properties": {"repobilityId": "24561c4d29cd4939", "scanner": "scanner-primary", "fingerprint": "913c1fe69bebcd63", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4d5e228cf3fd33b7", "level": "error", "message": {"text": "Dangling fetch: POST /kb/${slug}/restore (resources/js/Pages/kb/Index.tsx:302)"}, "properties": {"repobilityId": "eae7f196f92e1a17", "scanner": "scanner-primary", "fingerprint": "4d5e228cf3fd33b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b320efa91ddf9c96", "level": "error", "message": {"text": "Dangling fetch: POST /nfe-brasil/configuracao/certificado/testar (resources/js/Pages/Fiscal/Config.tsx:160)"}, "properties": {"repobilityId": "c00ee9ec8a9ec89e", "scanner": "scanner-primary", "fingerprint": "b320efa91ddf9c96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6340b853fea65957", "level": "error", "message": {"text": "Dangling fetch: GET /fiscal/palette/search?q=${encodeURIComponent(query.trim())} (resources/js/Pages/Fiscal/_components/CmdKPalette.tsx:135)"}, "properties": {"repobilityId": "fc230b5b3be6d599", "scanner": "scanner-primary", "fingerprint": "6340b853fea65957", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3e1a9e4de210c3db", "level": "error", "message": {"text": "Dangling fetch: POST /ponto/intercorrencias-ai/classify (resources/js/Pages/Ponto/Intercorrencias/Create.tsx:99)"}, "properties": {"repobilityId": "425c83772109cff6", "scanner": "scanner-primary", "fingerprint": "3e1a9e4de210c3db", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-73fe453dceb23223", "level": "error", "message": {"text": "Dangling fetch: POST /api/consent (resources/js/Lib/consent.ts:44)"}, "properties": {"repobilityId": "8df1c4f77db256c6", "scanner": "scanner-primary", "fingerprint": "73fe453dceb23223", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-684f0e83ba7e1558", "level": "note", "message": {"text": "Unused endpoint: GET "}, "properties": {"repobilityId": "f54a2ab9e5bd95b1", "scanner": "scanner-primary", "fingerprint": "684f0e83ba7e1558", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-99fc36db98c134ce", "level": "note", "message": {"text": "Unused endpoint: POST /logout"}, "properties": {"repobilityId": "e668f1ce0204c17e", "scanner": "scanner-primary", "fingerprint": "99fc36db98c134ce", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f42e5c7686b574bf", "level": "note", "message": {"text": "Unused endpoint: GET /financeiro/unificado"}, "properties": {"repobilityId": "6bb784e77bbb7b16", "scanner": "scanner-primary", "fingerprint": "f42e5c7686b574bf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1a52eb7ce0de98ee", "level": "note", "message": {"text": "Unused endpoint: GET /governance/audit"}, "properties": {"repobilityId": "5fcc20c0c3742080", "scanner": "scanner-primary", "fingerprint": "1a52eb7ce0de98ee", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3f2e7cb74155e8a2", "level": "note", "message": {"text": "Unused endpoint: GET /payments/v2"}, "properties": {"repobilityId": "4ac2dda95556e380", "scanner": "scanner-primary", "fingerprint": "3f2e7cb74155e8a2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a7b2b71b15575f29", "level": "note", "message": {"text": "Unused endpoint: GET /essentials/todo"}, "properties": {"repobilityId": "622538d3abedb001", "scanner": "scanner-primary", "fingerprint": "a7b2b71b15575f29", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-108e29b3e8821858", "level": "note", "message": {"text": "Unused endpoint: POST /essentials/todo/add-comment"}, "properties": {"repobilityId": "b642e8775d5abfa7", "scanner": "scanner-primary", "fingerprint": "108e29b3e8821858", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5349d841daa52605", "level": "note", "message": {"text": "Unused endpoint: POST /essentials/todo/upload-document"}, "properties": {"repobilityId": "858db5c63042bb68", "scanner": "scanner-primary", "fingerprint": "5349d841daa52605", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-76c8636d85e2d560", "level": "note", "message": {"text": "Unused endpoint: POST /essentials/todo"}, "properties": {"repobilityId": "3500413a7f25b40c", "scanner": "scanner-primary", "fingerprint": "76c8636d85e2d560", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1c2b685bd1edbd56", "level": "note", "message": {"text": "Unused endpoint: POST /hrm/settings"}, "properties": {"repobilityId": "4b05729accaa6a3a", "scanner": "scanner-primary", "fingerprint": "1c2b685bd1edbd56", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9cf106dc04d0c2e3", "level": "note", "message": {"text": "Unused endpoint: POST /essentials/knowledge-base"}, "properties": {"repobilityId": "24a06a1b603a4901", "scanner": "scanner-primary", "fingerprint": "9cf106dc04d0c2e3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4a1898fa72485a31", "level": "note", "message": {"text": "Unused endpoint: GET /hrm/holiday"}, "properties": {"repobilityId": "5f10a3667e945132", "scanner": "scanner-primary", "fingerprint": "4a1898fa72485a31", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-608e911ba8e71683", "level": "note", "message": {"text": "Unused endpoint: POST /essentials/messages"}, "properties": {"repobilityId": "543f0a8f5e19bb25", "scanner": "scanner-primary", "fingerprint": "608e911ba8e71683", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2abcfc3aae8db25d", "level": "note", "message": {"text": "Unused endpoint: POST /essentials/document"}, "properties": {"repobilityId": "f12c22920ac69caf", "scanner": "scanner-primary", "fingerprint": "2abcfc3aae8db25d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e3f3a4d2d4ed1e3e", "level": "note", "message": {"text": "Unused endpoint: GET /stock-adjustments"}, "properties": {"repobilityId": "270d67b9a27b0e7d", "scanner": "scanner-primary", "fingerprint": "e3f3a4d2d4ed1e3e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3ecb3b4fd53790e8", "level": "note", "message": {"text": "Unused endpoint: POST /stock-adjustments"}, "properties": {"repobilityId": "76e0316f21637893", "scanner": "scanner-primary", "fingerprint": "3ecb3b4fd53790e8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-18e749ab69d909ad", "level": "note", "message": {"text": "Unused endpoint: POST /settings/payment-gateways"}, "properties": {"repobilityId": "ad64ddc750b9113b", "scanner": "scanner-primary", "fingerprint": "18e749ab69d909ad", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d4bec551a23b817f", "level": "note", "message": {"text": "Unused endpoint: POST /memcofre/ingest"}, "properties": {"repobilityId": "1388f8083e1b60a0", "scanner": "scanner-primary", "fingerprint": "d4bec551a23b817f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bfaa2a5aa4242ee2", "level": "note", "message": {"text": "Unused endpoint: GET /memcofre/inbox"}, "properties": {"repobilityId": "859101c6ea626439", "scanner": "scanner-primary", "fingerprint": "bfaa2a5aa4242ee2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0afbc79800f4dcb4", "level": "note", "message": {"text": "Unused endpoint: GET /project-mgmt/burndown"}, "properties": {"repobilityId": "4af4a268b7768472", "scanner": "scanner-primary", "fingerprint": "0afbc79800f4dcb4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1ac5bccfa59a31cd", "level": "note", "message": {"text": "Unused endpoint: GET /project-mgmt/activity"}, "properties": {"repobilityId": "ba81c3809b1820da", "scanner": "scanner-primary", "fingerprint": "1ac5bccfa59a31cd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6e69ce91e2e80a88", "level": "note", "message": {"text": "Unused endpoint: GET /project-mgmt/my-work"}, "properties": {"repobilityId": "72f4e67736707c86", "scanner": "scanner-primary", "fingerprint": "6e69ce91e2e80a88", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1659e12261a24c02", "level": "note", "message": {"text": "Unused endpoint: GET /project-mgmt/inbox"}, "properties": {"repobilityId": "f6cbad42b1d74e30", "scanner": "scanner-primary", "fingerprint": "1659e12261a24c02", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-92e984a7a731d447", "level": "note", "message": {"text": "Unused endpoint: GET /project-mgmt/backlog"}, "properties": {"repobilityId": "6e4d80db4fec73d0", "scanner": "scanner-primary", "fingerprint": "92e984a7a731d447", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e1dbc233bc89b307", "level": "note", "message": {"text": "Unused endpoint: GET /project-mgmt/board"}, "properties": {"repobilityId": "159f986d8f2d0a8a", "scanner": "scanner-primary", "fingerprint": "e1dbc233bc89b307", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e6d60eef863ddc92", "level": "note", "message": {"text": "Unused endpoint: GET /stock-transfers"}, "properties": {"repobilityId": "ca3a9331c53733e4", "scanner": "scanner-primary", "fingerprint": "e6d60eef863ddc92", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0eb364fc12b7cd44", "level": "note", "message": {"text": "Unused endpoint: POST /stock-transfers"}, "properties": {"repobilityId": "936fd3f341c2264e", "scanner": "scanner-primary", "fingerprint": "0eb364fc12b7cd44", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-647c7d859667527d", "level": "note", "message": {"text": "Unused endpoint: GET /ads/admin/decisoes"}, "properties": {"repobilityId": "c49ec7c2222b1273", "scanner": "scanner-primary", "fingerprint": "647c7d859667527d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3be31919c1caa4b7", "level": "note", "message": {"text": "Unused endpoint: POST /ads/admin/team-scopes/grant"}, "properties": {"repobilityId": "7c5dee49f3bd4e69", "scanner": "scanner-primary", "fingerprint": "3be31919c1caa4b7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7027568cfd92414d", "level": "note", "message": {"text": "Unused endpoint: POST /ads/admin/team-scopes/revoke"}, "properties": {"repobilityId": "777d1fc50796fb15", "scanner": "scanner-primary", "fingerprint": "7027568cfd92414d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d296bbdd1f611731", "level": "note", "message": {"text": "Unused endpoint: POST /ads/admin/meta-skills"}, "properties": {"repobilityId": "972f02a3f29979fc", "scanner": "scanner-primary", "fingerprint": "d296bbdd1f611731", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7ccde11c3785dac7", "level": "note", "message": {"text": "Unused endpoint: POST /ads/admin/projects"}, "properties": {"repobilityId": "43ee36b23655fd83", "scanner": "scanner-primary", "fingerprint": "7ccde11c3785dac7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-767c1c9985e7fa28", "level": "note", "message": {"text": "Unused endpoint: GET /financeiro"}, "properties": {"repobilityId": "64b474159285840b", "scanner": "scanner-primary", "fingerprint": "767c1c9985e7fa28", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9215d96cbac300af", "level": "note", "message": {"text": "Unused endpoint: GET /financeiro/contas-receber"}, "properties": {"repobilityId": "173905b79fa4b958", "scanner": "scanner-primary", "fingerprint": "9215d96cbac300af", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e6770af14b03a189", "level": "note", "message": {"text": "Unused endpoint: GET /financeiro/relatorios"}, "properties": {"repobilityId": "7c79fec3294f0061", "scanner": "scanner-primary", "fingerprint": "e6770af14b03a189", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e2e88a69bb6b842f", "level": "note", "message": {"text": "Unused endpoint: POST /financeiro/configuracoes/contador/grant"}, "properties": {"repobilityId": "e244cb8601ed9f8f", "scanner": "scanner-primary", "fingerprint": "e2e88a69bb6b842f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a0b2c911612056a6", "level": "note", "message": {"text": "Unused endpoint: POST /financeiro/cobranca/emitir"}, "properties": {"repobilityId": "eea4fd5bc21acf01", "scanner": "scanner-primary", "fingerprint": "a0b2c911612056a6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-54ed0445594e44af", "level": "note", "message": {"text": "Unused endpoint: POST /financeiro/impostos/lancar"}, "properties": {"repobilityId": "afbc1e1beaaa2f2c", "scanner": "scanner-primary", "fingerprint": "54ed0445594e44af", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c0cd998b369295d8", "level": "note", "message": {"text": "Unused endpoint: POST /advisor/logout"}, "properties": {"repobilityId": "7aa24781286c8558", "scanner": "scanner-primary", "fingerprint": "c0cd998b369295d8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5267a3e677ac0126", "level": "note", "message": {"text": "Unused endpoint: POST /advisor/login"}, "properties": {"repobilityId": "2b76c419f4b6f256", "scanner": "scanner-primary", "fingerprint": "5267a3e677ac0126", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-be1b6ad7c43e00f0", "level": "note", "message": {"text": "Unused endpoint: POST /financeiro/unificado/bulk-update-categoria"}, "properties": {"repobilityId": "20e0807c7c61f976", "scanner": "scanner-primary", "fingerprint": "be1b6ad7c43e00f0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b5d2fdb801e7e3d6", "level": "note", "message": {"text": "Unused endpoint: POST /financeiro/unificado"}, "properties": {"repobilityId": "615fac2a458b437c", "scanner": "scanner-primary", "fingerprint": "b5d2fdb801e7e3d6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-77307488c5ff6d38", "level": "note", "message": {"text": "Unused endpoint: POST /financeiro/conciliacao/upload"}, "properties": {"repobilityId": "56b9b7a671af79e8", "scanner": "scanner-primary", "fingerprint": "77307488c5ff6d38", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9d15ebeed06487ff", "level": "note", "message": {"text": "Unused endpoint: GET /financeiro/conciliacao"}, "properties": {"repobilityId": "d57c0fcf85cea1c7", "scanner": "scanner-primary", "fingerprint": "9d15ebeed06487ff", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4f8b05ea65efe310", "level": "note", "message": {"text": "Unused endpoint: POST /financeiro/categorias"}, "properties": {"repobilityId": "604e0ba4580008a8", "scanner": "scanner-primary", "fingerprint": "4f8b05ea65efe310", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-422035bc48f6f61e", "level": "note", "message": {"text": "Unused endpoint: GET /financeiro/contas-pagar"}, "properties": {"repobilityId": "aaa758ed1291b7b0", "scanner": "scanner-primary", "fingerprint": "422035bc48f6f61e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2317ba4cf4d74fea", "level": "note", "message": {"text": "Unused endpoint: POST /recurring-billing"}, "properties": {"repobilityId": "061d36e435ca639e", "scanner": "scanner-primary", "fingerprint": "2317ba4cf4d74fea", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8c0a069592bbded8", "level": "note", "message": {"text": "Unused endpoint: POST /recurring-billing/planos"}, "properties": {"repobilityId": "3363cee226b1cddb", "scanner": "scanner-primary", "fingerprint": "8c0a069592bbded8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8f80cb60b591052d", "level": "note", "message": {"text": "Unused endpoint: GET /repair/device-models"}, "properties": {"repobilityId": "8036d4d32dd7658e", "scanner": "scanner-primary", "fingerprint": "8f80cb60b591052d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-585023193757b63e", "level": "note", "message": {"text": "Unused endpoint: GET /atendimento/metricas"}, "properties": {"repobilityId": "e2b647546369acb5", "scanner": "scanner-primary", "fingerprint": "585023193757b63e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}