{"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-9cbed98531a9d0d0", "name": "TODO/FIXME marker in shipping code \u2014 publi24-advanced-filter-main/library/qrcode.js:3238", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 publi24-advanced-filter-main/library/qrcode.js:3238"}, "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-0677f8a77effa171", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/library/jimp.js:2", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/library/jimp.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-315bb2c6610d29dd", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 publi24-advanced-filter-main/library/react/react-dom.production.mi", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 publi24-advanced-filter-main/library/react/react-dom.production.min.js:28"}, "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-cb53a2d8efdad955", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/library/tesseract/worker.min.js:2", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/library/tesseract/worker.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-06246267b97ffde4", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/lens-blocking-tests.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/lens-blocking-tests.ts:40"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a97cd9ec81065f9c", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/publi24/hideReasonDefault.spec.ts:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/publi24/hideReasonDefault.spec.ts:67"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c2df511a6411b1fa", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/publi24/utility/collectLensImageDomains.spec.ts:112", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/publi24/utility/collectLensImageDomains.spec.ts:112"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-13a3f0f0591f828f", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/helpers/fixture.ts:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/helpers/fixture.ts:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a2c4697050533dd0", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/helpers/globalSetup.ts:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/helpers/globalSetup.ts:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f63527ecc4e23ac", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/helpers/domainCollector.ts:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/helpers/domainCollector.ts:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b71b9b4f1a73feeb", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/detect-duplicate-sitenames.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/detect-duplicate-sitenames.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-03c24c718bd5dca5", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/clean-unknown-domains.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/clean-unknown-domains.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-c74558c907b49532", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts:730", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts:730"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-391fc346127b63d5", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/tests/contact-gate-diagnostic.ts:135", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/tests/contact-gate-diagnostic.ts:135"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b7bfe75638d15c46", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/tests/visibility-extraction.ts:123", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/tests/visibility-extraction.ts:123"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c6f72b75fb004dd1", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/tests/modal-contact-gate.ts:138", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/tests/modal-contact-gate.ts:138"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a379e5116496129a", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/misc/show-unknown-domains.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/misc/show-unknown-domains.js:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-97b170a3fdda161b", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/common/utils.ts:4", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/common/utils.ts:4"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b1a8e0d1a6dca473", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/index.ts:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/index.ts:93"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-09cea9ab959014ab", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/search_image_parser.ts:296", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/search_image_parser.ts:296"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8aa905a4a70e6c50", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/search_parser.ts:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/search_parser.ts:57"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2afb0c796fb77c3e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 publi24-advanced-filter-main/src/publi24/component/Common/Partials", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 publi24-advanced-filter-main/src/publi24/component/Common/Partials/AdList/AdsList.tsx:98"}, "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-aa3bbc3e9c5b854c", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/core/favorites.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/core/favorites.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5f15bba0bd4d6638", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/core/storage.ts:732", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/core/storage.ts:732"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f99339c2075ae126", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/core/analytics.ts:173", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/core/analytics.ts:173"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f5bcba01bd684476", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/nimfomane/index.ts:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/nimfomane/index.ts:64"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f640781060e9d8b6", "name": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/nimfomane/core/storage.ts:176", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/nimfomane/core/storage.ts:176"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aec780c0bf6a9980", "name": "Insecure pattern 'new_function_used' in publi24-advanced-filter-main/library/jimp.js:2", "shortDescription": {"text": "Insecure pattern 'new_function_used' in publi24-advanced-filter-main/library/jimp.js:2"}, "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-0e33ec6c29942ad5", "name": "Insecure pattern 'direct_innerhtml_assignment' in publi24-advanced-filter-main/library/jimp.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in publi24-advanced-filter-main/library/jimp.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-06cffc581350abdc", "name": "Insecure pattern 'domparser_html_parse' in publi24-advanced-filter-main/library/splide/splide.min.js:8", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in publi24-advanced-filter-main/library/splide/splide.min.js:8"}, "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-96d55cb6695c0337", "name": "Insecure pattern 'dangerous_innerhtml' in publi24-advanced-filter-main/library/react/react-dom.production.min.js:28", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in publi24-advanced-filter-main/library/react/react-dom.production.min.js:28"}, "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-57fb1bbd7970b604", "name": "Insecure pattern 'direct_innerhtml_assignment' in publi24-advanced-filter-main/library/react/react-dom.production.min.js", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in publi24-advanced-filter-main/library/react/react-dom.production.min.js:150"}, "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-6ded36021dd98ecf", "name": "Insecure pattern 'new_function_used' in publi24-advanced-filter-main/library/tesseract/worker.min.js:2", "shortDescription": {"text": "Insecure pattern 'new_function_used' in publi24-advanced-filter-main/library/tesseract/worker.min.js:2"}, "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-4965b006b237498c", "name": "Insecure pattern 'cors_wildcard' in publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts:30", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts:30"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-166709955b91197c", "name": "Insecure pattern 'node_child_process' in publi24-advanced-filter-main/src-mapper/ai-classifier/browser/instance.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in publi24-advanced-filter-main/src-mapper/ai-classifier/browser/instance.ts:2"}, "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-61e8ca28490652ce", "name": "Insecure pattern 'domparser_html_parse' in publi24-advanced-filter-main/src/common/page.ts:130", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in publi24-advanced-filter-main/src/common/page.ts:130"}, "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-3de91869c62fa08d", "name": "Insecure pattern 'dangerous_innerhtml' in publi24-advanced-filter-main/src/publi24/component/Common/Partials/AdList/AdsL", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in publi24-advanced-filter-main/src/publi24/component/Common/Partials/AdList/AdsList.tsx:98"}, "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-1eb0a6e56cab9c10", "name": "Insecure pattern 'direct_innerhtml_assignment' in publi24-advanced-filter-main/src/publi24/core/renderer.tsx:203", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in publi24-advanced-filter-main/src/publi24/core/renderer.tsx:203"}, "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-60a111acd40ce1bb", "name": "Insecure pattern 'direct_innerhtml_assignment' in publi24-advanced-filter-main/src/publi24/core/searchUI.ts:42", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in publi24-advanced-filter-main/src/publi24/core/searchUI.ts:42"}, "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-a22f9cdc572129f4", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/content.js:1913", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/content.js:1913"}, "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-d9e94598b398b272", "name": "Insecure pattern 'domparser_html_parse' in src/content.js:2822", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in src/content.js:2822"}, "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-00d2fdf3745f7c00", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/dashboard.js:273", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/dashboard.js:273"}, "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-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a72e0ed6e8fbc0cf", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e416579904a31928", "name": "Very large file: publi24-advanced-filter-main/library/qrcode.js (3377 lines)", "shortDescription": {"text": "Very large file: publi24-advanced-filter-main/library/qrcode.js (3377 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-2b65b8833e01c6ef", "name": "Very large file: src/background.js (1712 lines)", "shortDescription": {"text": "Very large file: src/background.js (1712 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-b73e194cbb8d0ddd", "name": "Very large file: src/content.js (5128 lines)", "shortDescription": {"text": "Very large file: src/content.js (5128 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-92fad518976b0ba5", "name": "Very large file: src/dashboard.js (3953 lines)", "shortDescription": {"text": "Very large file: src/dashboard.js (3953 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 64 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 19 placeholder/mock markers across 11 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 ci. 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-a0fc69798cb21fb1", "name": "Commented-code block (5 lines) in scripts/test-forum-video-extraction.mjs:67", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/test-forum-video-extraction.mjs:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff69ef3b0f62ff31", "name": "Commented-code block (7 lines) in scripts/test-external-link-video.mjs:20", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/test-external-link-video.mjs: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-28f2d988abaf70b7", "name": "Commented-code block (7 lines) in publi24-advanced-filter-main/library/qrcode.js:1433", "shortDescription": {"text": "Commented-code block (7 lines) in publi24-advanced-filter-main/library/qrcode.js:1433"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-401d881cebb4d2d1", "name": "Legacy-named symbol `ita_old` in publi24-advanced-filter-main/library/tesseract/tesseract.min.js:2", "shortDescription": {"text": "Legacy-named symbol `ita_old` in publi24-advanced-filter-main/library/tesseract/tesseract.min.js:2"}, "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-ea5909f635606866", "name": "`fetch()` without try/.catch or AbortSignal \u2014 publi24-advanced-filter-main/library/tesseract/tesseract.min.js:2", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 publi24-advanced-filter-main/library/tesseract/tesseract.min.js:2"}, "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-b25d11aa7ad744eb", "name": "Commented-code block (5 lines) in publi24-advanced-filter-main/tests/publi24/searchRelated.spec.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in publi24-advanced-filter-main/tests/publi24/searchRelated.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-b3345623164a9d00", "name": "Legacy-named symbol `staleOld` in publi24-advanced-filter-main/tests/publi24/storage.spec.ts:27", "shortDescription": {"text": "Legacy-named symbol `staleOld` in publi24-advanced-filter-main/tests/publi24/storage.spec.ts:27"}, "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-3eed5cd011baefc2", "name": "Legacy-named symbol `feedback_v1` in publi24-advanced-filter-main/tests/publi24/feedback.spec.ts:4", "shortDescription": {"text": "Legacy-named symbol `feedback_v1` in publi24-advanced-filter-main/tests/publi24/feedback.spec.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-d751413bd724b3bd", "name": "Legacy-named symbol `feedback_v1` in publi24-advanced-filter-main/tests/nimfomane/feedback.spec.ts:5", "shortDescription": {"text": "Legacy-named symbol `feedback_v1` in publi24-advanced-filter-main/tests/nimfomane/feedback.spec.ts:5"}, "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-39951967537f6553", "name": "Commented-code block (9 lines) in publi24-advanced-filter-main/src/common/globals.ts:15", "shortDescription": {"text": "Commented-code block (9 lines) in publi24-advanced-filter-main/src/common/globals.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d47c87de409c30ea", "name": "`fetch()` without try/.catch or AbortSignal \u2014 publi24-advanced-filter-main/src/common/supabase/supabaseClient.ts:14", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 publi24-advanced-filter-main/src/common/supabase/supabaseClient.ts:14"}, "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-0f1fee8bad4309bb", "name": "Legacy-named symbol `feedback_v1` in publi24-advanced-filter-main/src/common/supabase/feedbackClient.ts:44", "shortDescription": {"text": "Legacy-named symbol `feedback_v1` in publi24-advanced-filter-main/src/common/supabase/feedbackClient.ts:44"}, "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-5909d90bbfb35642", "name": "Legacy-named symbol `isDateOld` in publi24-advanced-filter-main/src/publi24/component/Common/Partials/AdList/AdsList.tsx", "shortDescription": {"text": "Legacy-named symbol `isDateOld` in publi24-advanced-filter-main/src/publi24/component/Common/Partials/AdList/AdsList.tsx: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-8b9154f9cd7a7b68", "name": "Legacy-named symbol `duplicatesInOtherLocNotOld` in publi24-advanced-filter-main/src/publi24/core/storage.ts:16", "shortDescription": {"text": "Legacy-named symbol `duplicatesInOtherLocNotOld` in publi24-advanced-filter-main/src/publi24/core/storage.ts:16"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9acf0c5b0a558885", "name": "Legacy-named symbol `analytics_v2` in publi24-advanced-filter-main/src/publi24/core/analytics.ts:193", "shortDescription": {"text": "Legacy-named symbol `analytics_v2` in publi24-advanced-filter-main/src/publi24/core/analytics.ts:193"}, "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-6876f04f00dea90a", "name": "Legacy-named symbol `isDateOld` in publi24-advanced-filter-main/src/publi24/core/adData.ts:21", "shortDescription": {"text": "Legacy-named symbol `isDateOld` in publi24-advanced-filter-main/src/publi24/core/adData.ts:21"}, "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-d4e87c62ff3739d9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 publi24-advanced-filter-main/src/publi24/core/adActions.ts:117", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 publi24-advanced-filter-main/src/publi24/core/adActions.ts:117"}, "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-33e8f1cec7a99f55", "name": "Commented-code block (5 lines) in src/background.js:680", "shortDescription": {"text": "Commented-code block (5 lines) in src/background.js:680"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-870251b8ccf4d0d5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/background.js:233", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/background.js:233"}, "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-b906463352a0dcac", "name": "Commented-code block (5 lines) in src/content.js:1048", "shortDescription": {"text": "Commented-code block (5 lines) in src/content.js:1048"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-84652552970558ae", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/content.js:1332", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/content.js:1332"}, "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-7ae348cfbf199e53", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/dashboard.js:1468", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/dashboard.js:1468"}, "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-e45c45c2627ec1b1", "name": "Dangling fetch: POST /rest/v1/feedback_v1 (publi24-advanced-filter-main/src/common/supabase/feedbackClient.ts:44)", "shortDescription": {"text": "Dangling fetch: POST /rest/v1/feedback_v1 (publi24-advanced-filter-main/src/common/supabase/feedbackClient.ts:44)"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src/common/supabase/feedbackClient.ts:44` calls `POST /rest/v1/feedback_v1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rest/v1/feedback_v1`\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-dbe44c770da5a15f", "name": "Dangling fetch: POST /rest/v1/analytics_v2 (publi24-advanced-filter-main/src/publi24/core/analytics.ts:193)", "shortDescription": {"text": "Dangling fetch: POST /rest/v1/analytics_v2 (publi24-advanced-filter-main/src/publi24/core/analytics.ts:193)"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src/publi24/core/analytics.ts:193` calls `POST /rest/v1/analytics_v2` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rest/v1/analytics_v2`\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-b2d01cde74db62d6", "name": "Dangling fetch: POST https://www.publi24.ro/DetailAd/PhoneNumberImages?Length=8 (publi24-advanced-filter-main/src/publi2", "shortDescription": {"text": "Dangling fetch: POST https://www.publi24.ro/DetailAd/PhoneNumberImages?Length=8 (publi24-advanced-filter-main/src/publi24/core/adActions.ts:117)"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src/publi24/core/adActions.ts:117` calls `POST https://www.publi24.ro/DetailAd/PhoneNumberImages?Length=8` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.publi24.ro/detailad/phonenumberimages`\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-27652a11ba620012", "name": "Unused endpoint: GET /api/state", "shortDescription": {"text": "Unused endpoint: GET /api/state"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `GET /api/state` 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-d57e5098c2f802af", "name": "Unused endpoint: GET /api/current-page-diagnostics", "shortDescription": {"text": "Unused endpoint: GET /api/current-page-diagnostics"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `GET /api/current-page-diagnostics` 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-53a22e8293a139bd", "name": "Unused endpoint: POST /api/browser/navigate", "shortDescription": {"text": "Unused endpoint: POST /api/browser/navigate"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/browser/navigate` 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-4f5bb9f0094c311b", "name": "Unused endpoint: POST /api/browser/focus/:domain", "shortDescription": {"text": "Unused endpoint: POST /api/browser/focus/:domain"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/browser/focus/:domain` 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-0ea970b5f55020de", "name": "Unused endpoint: GET /api/stream", "shortDescription": {"text": "Unused endpoint: GET /api/stream"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `GET /api/stream` 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-e847e7e653de757f", "name": "Unused endpoint: POST /api/ai/start", "shortDescription": {"text": "Unused endpoint: POST /api/ai/start"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/ai/start` 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-5ad3ac09e2af3917", "name": "Unused endpoint: POST /api/ai/pause", "shortDescription": {"text": "Unused endpoint: POST /api/ai/pause"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/ai/pause` 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-af17f96a8fdd584d", "name": "Unused endpoint: POST /api/ai/stop", "shortDescription": {"text": "Unused endpoint: POST /api/ai/stop"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/ai/stop` 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-891f0acb99d9bac2", "name": "Unused endpoint: POST /api/ai/settings", "shortDescription": {"text": "Unused endpoint: POST /api/ai/settings"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/ai/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-698a37bc3ba63cd7", "name": "Unused endpoint: POST /api/review/accept", "shortDescription": {"text": "Unused endpoint: POST /api/review/accept"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/review/accept` 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-d0f67b597da70061", "name": "Unused endpoint: POST /api/review/override", "shortDescription": {"text": "Unused endpoint: POST /api/review/override"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/review/override` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e5ec73123f57c9ee", "name": "Unused endpoint: POST /api/review/retry", "shortDescription": {"text": "Unused endpoint: POST /api/review/retry"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/review/retry` 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-2f3e274e6978a2df", "name": "Unused endpoint: POST /api/review/skip", "shortDescription": {"text": "Unused endpoint: POST /api/review/skip"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/review/skip` 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-cf6d0254fe55efad", "name": "Unused endpoint: GET /api/stash", "shortDescription": {"text": "Unused endpoint: GET /api/stash"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `GET /api/stash` 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-4015ccc7d4e5dbed", "name": "Unused endpoint: GET /api/stash/:domain", "shortDescription": {"text": "Unused endpoint: GET /api/stash/:domain"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `GET /api/stash/:domain` 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-b1dd65576073f284", "name": "Unused endpoint: POST /api/stash/:domain/accept", "shortDescription": {"text": "Unused endpoint: POST /api/stash/:domain/accept"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/stash/:domain/accept` 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-d06a7bf3d59c1262", "name": "Unused endpoint: POST /api/stash/:domain/override", "shortDescription": {"text": "Unused endpoint: POST /api/stash/:domain/override"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/stash/:domain/override` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eeec9fe582a1eb16", "name": "Unused endpoint: POST /api/stash/:domain/discard", "shortDescription": {"text": "Unused endpoint: POST /api/stash/:domain/discard"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/stash/:domain/discard` 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-0eebea7786f4e81e", "name": "Unused endpoint: POST /api/stash/:domain/retry", "shortDescription": {"text": "Unused endpoint: POST /api/stash/:domain/retry"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/stash/:domain/retry` 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-1aa8bdc1db361feb", "name": "Unused endpoint: GET /api/domains", "shortDescription": {"text": "Unused endpoint: GET /api/domains"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `GET /api/domains` 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-19f30ba96c03dbf3", "name": "Unused endpoint: POST /api/map-bad", "shortDescription": {"text": "Unused endpoint: POST /api/map-bad"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/map-bad` 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-47ff676cc992bdd6", "name": "Unused endpoint: POST /api/map-escort", "shortDescription": {"text": "Unused endpoint: POST /api/map-escort"}, "fullDescription": {"text": "`publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts` declares `POST /api/map-escort` 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/23608"}, "properties": {"repository": "zeroidentity-wq/anunthelp", "repoUrl": "https://github.com/zeroidentity-wq/anunthelp", "branch": "main"}, "results": [{"ruleId": "scanner-9cbed98531a9d0d0", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 publi24-advanced-filter-main/library/qrcode.js:3238"}, "properties": {"repobilityId": "ff5634afc30ceb73", "scanner": "scanner-primary", "fingerprint": "9cbed98531a9d0d0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0677f8a77effa171", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/library/jimp.js:2"}, "properties": {"repobilityId": "4c4fe7bb4c1557ec", "scanner": "scanner-primary", "fingerprint": "0677f8a77effa171", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-315bb2c6610d29dd", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 publi24-advanced-filter-main/library/react/react-dom.production.min.js:28"}, "properties": {"repobilityId": "b98d8bf5a5ef4319", "scanner": "scanner-primary", "fingerprint": "315bb2c6610d29dd", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-cb53a2d8efdad955", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/library/tesseract/worker.min.js:2"}, "properties": {"repobilityId": "2b0e10b30dced536", "scanner": "scanner-primary", "fingerprint": "cb53a2d8efdad955", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-06246267b97ffde4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/lens-blocking-tests.ts:40"}, "properties": {"repobilityId": "d81b838adff5c998", "scanner": "scanner-primary", "fingerprint": "06246267b97ffde4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a97cd9ec81065f9c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/publi24/hideReasonDefault.spec.ts:67"}, "properties": {"repobilityId": "e71437c40ff2000e", "scanner": "scanner-primary", "fingerprint": "a97cd9ec81065f9c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c2df511a6411b1fa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/publi24/utility/collectLensImageDomains.spec.ts:112"}, "properties": {"repobilityId": "36cdece94fd57c9d", "scanner": "scanner-primary", "fingerprint": "c2df511a6411b1fa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-13a3f0f0591f828f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/helpers/fixture.ts:17"}, "properties": {"repobilityId": "02bc7185e8e044d5", "scanner": "scanner-primary", "fingerprint": "13a3f0f0591f828f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a2c4697050533dd0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/helpers/globalSetup.ts:20"}, "properties": {"repobilityId": "5b47bbb59f6dbd4b", "scanner": "scanner-primary", "fingerprint": "a2c4697050533dd0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4f63527ecc4e23ac", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/tests/helpers/domainCollector.ts:29"}, "properties": {"repobilityId": "c887f2c71f670362", "scanner": "scanner-primary", "fingerprint": "4f63527ecc4e23ac", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b71b9b4f1a73feeb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/detect-duplicate-sitenames.js:27"}, "properties": {"repobilityId": "447f28759734e677", "scanner": "scanner-primary", "fingerprint": "b71b9b4f1a73feeb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-03c24c718bd5dca5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/clean-unknown-domains.js:15"}, "properties": {"repobilityId": "9d0d3c48cac7ea5c", "scanner": "scanner-primary", "fingerprint": "03c24c718bd5dca5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c74558c907b49532", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts:730"}, "properties": {"repobilityId": "5693d54342c7de5d", "scanner": "scanner-primary", "fingerprint": "c74558c907b49532", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-391fc346127b63d5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/tests/contact-gate-diagnostic.ts:135"}, "properties": {"repobilityId": "292f5f405fc1e744", "scanner": "scanner-primary", "fingerprint": "391fc346127b63d5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b7bfe75638d15c46", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/tests/visibility-extraction.ts:123"}, "properties": {"repobilityId": "d7f3327b45acee49", "scanner": "scanner-primary", "fingerprint": "b7bfe75638d15c46", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c6f72b75fb004dd1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src-mapper/tests/modal-contact-gate.ts:138"}, "properties": {"repobilityId": "9c00f5bdd9fa7022", "scanner": "scanner-primary", "fingerprint": "c6f72b75fb004dd1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a379e5116496129a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/misc/show-unknown-domains.js:17"}, "properties": {"repobilityId": "26f8ef06abcb1b46", "scanner": "scanner-primary", "fingerprint": "a379e5116496129a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-97b170a3fdda161b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/common/utils.ts:4"}, "properties": {"repobilityId": "d3073b9163905cc5", "scanner": "scanner-primary", "fingerprint": "97b170a3fdda161b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b1a8e0d1a6dca473", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/index.ts:93"}, "properties": {"repobilityId": "b2f83f28078838e7", "scanner": "scanner-primary", "fingerprint": "b1a8e0d1a6dca473", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-09cea9ab959014ab", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/search_image_parser.ts:296"}, "properties": {"repobilityId": "18db23deacd292ee", "scanner": "scanner-primary", "fingerprint": "09cea9ab959014ab", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8aa905a4a70e6c50", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/search_parser.ts:57"}, "properties": {"repobilityId": "a1fccdc5a4487a61", "scanner": "scanner-primary", "fingerprint": "8aa905a4a70e6c50", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2afb0c796fb77c3e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 publi24-advanced-filter-main/src/publi24/component/Common/Partials/AdList/AdsList.tsx:98"}, "properties": {"repobilityId": "446fc07cca0387be", "scanner": "scanner-primary", "fingerprint": "2afb0c796fb77c3e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-aa3bbc3e9c5b854c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/core/favorites.ts:33"}, "properties": {"repobilityId": "562e1e9a42080b06", "scanner": "scanner-primary", "fingerprint": "aa3bbc3e9c5b854c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5f15bba0bd4d6638", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/core/storage.ts:732"}, "properties": {"repobilityId": "6ebedc29ae83b3e0", "scanner": "scanner-primary", "fingerprint": "5f15bba0bd4d6638", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f99339c2075ae126", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/publi24/core/analytics.ts:173"}, "properties": {"repobilityId": "90b47cbc250327ba", "scanner": "scanner-primary", "fingerprint": "f99339c2075ae126", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f5bcba01bd684476", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/nimfomane/index.ts:64"}, "properties": {"repobilityId": "e5204ff8e1a3a5f9", "scanner": "scanner-primary", "fingerprint": "f5bcba01bd684476", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f640781060e9d8b6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 publi24-advanced-filter-main/src/nimfomane/core/storage.ts:176"}, "properties": {"repobilityId": "0bcc86a6fda99022", "scanner": "scanner-primary", "fingerprint": "f640781060e9d8b6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aec780c0bf6a9980", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in publi24-advanced-filter-main/library/jimp.js:2"}, "properties": {"repobilityId": "f1de9a6cf103a7f2", "scanner": "scanner-primary", "fingerprint": "aec780c0bf6a9980", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "publi24-advanced-filter-main/library/jimp.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-0e33ec6c29942ad5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in publi24-advanced-filter-main/library/jimp.js:2"}, "properties": {"repobilityId": "2d60c5dd7f0f4c92", "scanner": "scanner-primary", "fingerprint": "0e33ec6c29942ad5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "publi24-advanced-filter-main/library/jimp.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-06cffc581350abdc", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in publi24-advanced-filter-main/library/splide/splide.min.js:8"}, "properties": {"repobilityId": "8ac3d9b546638028", "scanner": "scanner-primary", "fingerprint": "06cffc581350abdc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "publi24-advanced-filter-main/library/splide/splide.min.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-96d55cb6695c0337", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in publi24-advanced-filter-main/library/react/react-dom.production.min.js:28"}, "properties": {"repobilityId": "be2a95e9323e6020", "scanner": "scanner-primary", "fingerprint": "96d55cb6695c0337", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "publi24-advanced-filter-main/library/react/react-dom.production.min.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-57fb1bbd7970b604", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in publi24-advanced-filter-main/library/react/react-dom.production.min.js:150"}, "properties": {"repobilityId": "dd1a8df28c770f28", "scanner": "scanner-primary", "fingerprint": "57fb1bbd7970b604", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "publi24-advanced-filter-main/library/react/react-dom.production.min.js"}, "region": {"startLine": 150}}}]}, {"ruleId": "scanner-6ded36021dd98ecf", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in publi24-advanced-filter-main/library/tesseract/worker.min.js:2"}, "properties": {"repobilityId": "97d9b969e3441cdc", "scanner": "scanner-primary", "fingerprint": "6ded36021dd98ecf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "publi24-advanced-filter-main/library/tesseract/worker.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-4965b006b237498c", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts:30"}, "properties": {"repobilityId": "b18fa1c089c0d2eb", "scanner": "scanner-primary", "fingerprint": "4965b006b237498c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "publi24-advanced-filter-main/src-mapper/ai-classifier/index.ts"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-166709955b91197c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in publi24-advanced-filter-main/src-mapper/ai-classifier/browser/instance.ts:2"}, "properties": {"repobilityId": "e84d25cd9b6964e1", "scanner": "scanner-primary", "fingerprint": "166709955b91197c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "publi24-advanced-filter-main/src-mapper/ai-classifier/browser/instance.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-61e8ca28490652ce", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in publi24-advanced-filter-main/src/common/page.ts:130"}, "properties": {"repobilityId": "b7e99211d4c146c4", "scanner": "scanner-primary", "fingerprint": "61e8ca28490652ce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "publi24-advanced-filter-main/src/common/page.ts"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-3de91869c62fa08d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in publi24-advanced-filter-main/src/publi24/component/Common/Partials/AdList/AdsList.tsx:98"}, "properties": {"repobilityId": "d0e39731725cabdd", "scanner": "scanner-primary", "fingerprint": "3de91869c62fa08d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "publi24-advanced-filter-main/src/publi24/component/Common/Partials/AdList/AdsList.tsx"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-1eb0a6e56cab9c10", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in publi24-advanced-filter-main/src/publi24/core/renderer.tsx:203"}, "properties": {"repobilityId": "f4ac7271e5b0db7a", "scanner": "scanner-primary", "fingerprint": "1eb0a6e56cab9c10", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "publi24-advanced-filter-main/src/publi24/core/renderer.tsx"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-60a111acd40ce1bb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in publi24-advanced-filter-main/src/publi24/core/searchUI.ts:42"}, "properties": {"repobilityId": "430ca5bcd6210a4c", "scanner": "scanner-primary", "fingerprint": "60a111acd40ce1bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "publi24-advanced-filter-main/src/publi24/core/searchUI.ts"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-a22f9cdc572129f4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/content.js:1913"}, "properties": {"repobilityId": "b25ddafbfab889d9", "scanner": "scanner-primary", "fingerprint": "a22f9cdc572129f4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/content.js"}, "region": {"startLine": 1913}}}]}, {"ruleId": "scanner-d9e94598b398b272", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in src/content.js:2822"}, "properties": {"repobilityId": "77b2fd3d8ac81dee", "scanner": "scanner-primary", "fingerprint": "d9e94598b398b272", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/content.js"}, "region": {"startLine": 2822}}}]}, {"ruleId": "scanner-00d2fdf3745f7c00", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/dashboard.js:273"}, "properties": {"repobilityId": "679486fbde5baf2e", "scanner": "scanner-primary", "fingerprint": "00d2fdf3745f7c00", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/dashboard.js"}, "region": {"startLine": 273}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-a72e0ed6e8fbc0cf", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "0faa793062c60429", "scanner": "scanner-primary", "fingerprint": "a72e0ed6e8fbc0cf", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "publi24-advanced-filter-main/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e416579904a31928", "level": "note", "message": {"text": "Very large file: publi24-advanced-filter-main/library/qrcode.js (3377 lines)"}, "properties": {"repobilityId": "6ed42e6dca14b40f", "scanner": "scanner-primary", "fingerprint": "e416579904a31928", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2b65b8833e01c6ef", "level": "note", "message": {"text": "Very large file: src/background.js (1712 lines)"}, "properties": {"repobilityId": "aac7e8639572058d", "scanner": "scanner-primary", "fingerprint": "2b65b8833e01c6ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b73e194cbb8d0ddd", "level": "note", "message": {"text": "Very large file: src/content.js (5128 lines)"}, "properties": {"repobilityId": "06806184619cf975", "scanner": "scanner-primary", "fingerprint": "b73e194cbb8d0ddd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-92fad518976b0ba5", "level": "note", "message": {"text": "Very large file: src/dashboard.js (3953 lines)"}, "properties": {"repobilityId": "5aebbfc85ac14cea", "scanner": "scanner-primary", "fingerprint": "92fad518976b0ba5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "6b0b1cda92ead51e", "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": "244c63b15c4f7b51", "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": "e9c2d109344d3ba5", "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": "beebebd78b866bd4", "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": "90129c400c6a46b8", "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": "b0e78d50f8a6018a", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-a0fc69798cb21fb1", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/test-forum-video-extraction.mjs:67"}, "properties": {"repobilityId": "122305c52b078f79", "scanner": "scanner-primary", "fingerprint": "a0fc69798cb21fb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff69ef3b0f62ff31", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/test-external-link-video.mjs:20"}, "properties": {"repobilityId": "79d50ba2a362e83d", "scanner": "scanner-primary", "fingerprint": "ff69ef3b0f62ff31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28f2d988abaf70b7", "level": "none", "message": {"text": "Commented-code block (7 lines) in publi24-advanced-filter-main/library/qrcode.js:1433"}, "properties": {"repobilityId": "cc1b0a17fac6e34c", "scanner": "scanner-primary", "fingerprint": "28f2d988abaf70b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-401d881cebb4d2d1", "level": "note", "message": {"text": "Legacy-named symbol `ita_old` in publi24-advanced-filter-main/library/tesseract/tesseract.min.js:2"}, "properties": {"repobilityId": "b5250527104710b1", "scanner": "scanner-primary", "fingerprint": "401d881cebb4d2d1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ea5909f635606866", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 publi24-advanced-filter-main/library/tesseract/tesseract.min.js:2"}, "properties": {"repobilityId": "d6e9875a670ae722", "scanner": "scanner-primary", "fingerprint": "ea5909f635606866", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b25d11aa7ad744eb", "level": "none", "message": {"text": "Commented-code block (5 lines) in publi24-advanced-filter-main/tests/publi24/searchRelated.spec.ts:12"}, "properties": {"repobilityId": "15dfd32b3f32807c", "scanner": "scanner-primary", "fingerprint": "b25d11aa7ad744eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3345623164a9d00", "level": "note", "message": {"text": "Legacy-named symbol `staleOld` in publi24-advanced-filter-main/tests/publi24/storage.spec.ts:27"}, "properties": {"repobilityId": "229c7a2a8095e302", "scanner": "scanner-primary", "fingerprint": "b3345623164a9d00", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3eed5cd011baefc2", "level": "note", "message": {"text": "Legacy-named symbol `feedback_v1` in publi24-advanced-filter-main/tests/publi24/feedback.spec.ts:4"}, "properties": {"repobilityId": "700ecd5b18c3e792", "scanner": "scanner-primary", "fingerprint": "3eed5cd011baefc2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d751413bd724b3bd", "level": "note", "message": {"text": "Legacy-named symbol `feedback_v1` in publi24-advanced-filter-main/tests/nimfomane/feedback.spec.ts:5"}, "properties": {"repobilityId": "a4b47288f8356d2c", "scanner": "scanner-primary", "fingerprint": "d751413bd724b3bd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-39951967537f6553", "level": "none", "message": {"text": "Commented-code block (9 lines) in publi24-advanced-filter-main/src/common/globals.ts:15"}, "properties": {"repobilityId": "ceed2fe207495029", "scanner": "scanner-primary", "fingerprint": "39951967537f6553", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d47c87de409c30ea", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 publi24-advanced-filter-main/src/common/supabase/supabaseClient.ts:14"}, "properties": {"repobilityId": "0c530ad50cdb81ed", "scanner": "scanner-primary", "fingerprint": "d47c87de409c30ea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0f1fee8bad4309bb", "level": "note", "message": {"text": "Legacy-named symbol `feedback_v1` in publi24-advanced-filter-main/src/common/supabase/feedbackClient.ts:44"}, "properties": {"repobilityId": "ab3e23471b180a9e", "scanner": "scanner-primary", "fingerprint": "0f1fee8bad4309bb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5909d90bbfb35642", "level": "note", "message": {"text": "Legacy-named symbol `isDateOld` in publi24-advanced-filter-main/src/publi24/component/Common/Partials/AdList/AdsList.tsx:114"}, "properties": {"repobilityId": "c37538ef5032a40f", "scanner": "scanner-primary", "fingerprint": "5909d90bbfb35642", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8b9154f9cd7a7b68", "level": "note", "message": {"text": "Legacy-named symbol `duplicatesInOtherLocNotOld` in publi24-advanced-filter-main/src/publi24/core/storage.ts:16"}, "properties": {"repobilityId": "8ffeb74c546b60b3", "scanner": "scanner-primary", "fingerprint": "8b9154f9cd7a7b68", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9acf0c5b0a558885", "level": "note", "message": {"text": "Legacy-named symbol `analytics_v2` in publi24-advanced-filter-main/src/publi24/core/analytics.ts:193"}, "properties": {"repobilityId": "fc0500e5bd9073dd", "scanner": "scanner-primary", "fingerprint": "9acf0c5b0a558885", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6876f04f00dea90a", "level": "note", "message": {"text": "Legacy-named symbol `isDateOld` in publi24-advanced-filter-main/src/publi24/core/adData.ts:21"}, "properties": {"repobilityId": "a89f26023800f4e4", "scanner": "scanner-primary", "fingerprint": "6876f04f00dea90a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d4e87c62ff3739d9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 publi24-advanced-filter-main/src/publi24/core/adActions.ts:117"}, "properties": {"repobilityId": "b1f33d06033965bd", "scanner": "scanner-primary", "fingerprint": "d4e87c62ff3739d9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-33e8f1cec7a99f55", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/background.js:680"}, "properties": {"repobilityId": "ced7e233bec2c3f3", "scanner": "scanner-primary", "fingerprint": "33e8f1cec7a99f55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-870251b8ccf4d0d5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/background.js:233"}, "properties": {"repobilityId": "6ca1fd698642d7de", "scanner": "scanner-primary", "fingerprint": "870251b8ccf4d0d5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b906463352a0dcac", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/content.js:1048"}, "properties": {"repobilityId": "4500895672ee8fc0", "scanner": "scanner-primary", "fingerprint": "b906463352a0dcac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84652552970558ae", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/content.js:1332"}, "properties": {"repobilityId": "8effc2f3ec8327d6", "scanner": "scanner-primary", "fingerprint": "84652552970558ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7ae348cfbf199e53", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/dashboard.js:1468"}, "properties": {"repobilityId": "a8bcc44607766dcc", "scanner": "scanner-primary", "fingerprint": "7ae348cfbf199e53", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e45c45c2627ec1b1", "level": "error", "message": {"text": "Dangling fetch: POST /rest/v1/feedback_v1 (publi24-advanced-filter-main/src/common/supabase/feedbackClient.ts:44)"}, "properties": {"repobilityId": "18243b028868ac0e", "scanner": "scanner-primary", "fingerprint": "e45c45c2627ec1b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dbe44c770da5a15f", "level": "error", "message": {"text": "Dangling fetch: POST /rest/v1/analytics_v2 (publi24-advanced-filter-main/src/publi24/core/analytics.ts:193)"}, "properties": {"repobilityId": "55d5f742d2493e30", "scanner": "scanner-primary", "fingerprint": "dbe44c770da5a15f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b2d01cde74db62d6", "level": "error", "message": {"text": "Dangling fetch: POST https://www.publi24.ro/DetailAd/PhoneNumberImages?Length=8 (publi24-advanced-filter-main/src/publi24/core/adActions.ts:117)"}, "properties": {"repobilityId": "e4a5b5d550e89e23", "scanner": "scanner-primary", "fingerprint": "b2d01cde74db62d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-27652a11ba620012", "level": "note", "message": {"text": "Unused endpoint: GET /api/state"}, "properties": {"repobilityId": "633d2b4fde358aaa", "scanner": "scanner-primary", "fingerprint": "27652a11ba620012", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d57e5098c2f802af", "level": "note", "message": {"text": "Unused endpoint: GET /api/current-page-diagnostics"}, "properties": {"repobilityId": "4a21bb9fb9143ed7", "scanner": "scanner-primary", "fingerprint": "d57e5098c2f802af", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-53a22e8293a139bd", "level": "note", "message": {"text": "Unused endpoint: POST /api/browser/navigate"}, "properties": {"repobilityId": "e9a0b65280a88e7a", "scanner": "scanner-primary", "fingerprint": "53a22e8293a139bd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4f5bb9f0094c311b", "level": "note", "message": {"text": "Unused endpoint: POST /api/browser/focus/:domain"}, "properties": {"repobilityId": "e67662ce204815c9", "scanner": "scanner-primary", "fingerprint": "4f5bb9f0094c311b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0ea970b5f55020de", "level": "note", "message": {"text": "Unused endpoint: GET /api/stream"}, "properties": {"repobilityId": "b3aeeebe24af71a6", "scanner": "scanner-primary", "fingerprint": "0ea970b5f55020de", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e847e7e653de757f", "level": "note", "message": {"text": "Unused endpoint: POST /api/ai/start"}, "properties": {"repobilityId": "0abf4c8566857cff", "scanner": "scanner-primary", "fingerprint": "e847e7e653de757f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5ad3ac09e2af3917", "level": "note", "message": {"text": "Unused endpoint: POST /api/ai/pause"}, "properties": {"repobilityId": "8292ebb61d7afb60", "scanner": "scanner-primary", "fingerprint": "5ad3ac09e2af3917", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-af17f96a8fdd584d", "level": "note", "message": {"text": "Unused endpoint: POST /api/ai/stop"}, "properties": {"repobilityId": "32da8457b412767e", "scanner": "scanner-primary", "fingerprint": "af17f96a8fdd584d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-891f0acb99d9bac2", "level": "note", "message": {"text": "Unused endpoint: POST /api/ai/settings"}, "properties": {"repobilityId": "f7e9d3a51be7e91e", "scanner": "scanner-primary", "fingerprint": "891f0acb99d9bac2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-698a37bc3ba63cd7", "level": "note", "message": {"text": "Unused endpoint: POST /api/review/accept"}, "properties": {"repobilityId": "832dacceac446b33", "scanner": "scanner-primary", "fingerprint": "698a37bc3ba63cd7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d0f67b597da70061", "level": "note", "message": {"text": "Unused endpoint: POST /api/review/override"}, "properties": {"repobilityId": "f1968c45165e0cf9", "scanner": "scanner-primary", "fingerprint": "d0f67b597da70061", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e5ec73123f57c9ee", "level": "note", "message": {"text": "Unused endpoint: POST /api/review/retry"}, "properties": {"repobilityId": "3f5ec9fc1b80a01c", "scanner": "scanner-primary", "fingerprint": "e5ec73123f57c9ee", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2f3e274e6978a2df", "level": "note", "message": {"text": "Unused endpoint: POST /api/review/skip"}, "properties": {"repobilityId": "7ce04a4ca491d2eb", "scanner": "scanner-primary", "fingerprint": "2f3e274e6978a2df", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cf6d0254fe55efad", "level": "note", "message": {"text": "Unused endpoint: GET /api/stash"}, "properties": {"repobilityId": "02ccc54755f6463b", "scanner": "scanner-primary", "fingerprint": "cf6d0254fe55efad", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4015ccc7d4e5dbed", "level": "note", "message": {"text": "Unused endpoint: GET /api/stash/:domain"}, "properties": {"repobilityId": "0774931e0ac8a91b", "scanner": "scanner-primary", "fingerprint": "4015ccc7d4e5dbed", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b1dd65576073f284", "level": "note", "message": {"text": "Unused endpoint: POST /api/stash/:domain/accept"}, "properties": {"repobilityId": "a84ef7b3f7fbeb26", "scanner": "scanner-primary", "fingerprint": "b1dd65576073f284", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d06a7bf3d59c1262", "level": "note", "message": {"text": "Unused endpoint: POST /api/stash/:domain/override"}, "properties": {"repobilityId": "c1917e780dba0f7a", "scanner": "scanner-primary", "fingerprint": "d06a7bf3d59c1262", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eeec9fe582a1eb16", "level": "note", "message": {"text": "Unused endpoint: POST /api/stash/:domain/discard"}, "properties": {"repobilityId": "ec823009830f4d77", "scanner": "scanner-primary", "fingerprint": "eeec9fe582a1eb16", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0eebea7786f4e81e", "level": "note", "message": {"text": "Unused endpoint: POST /api/stash/:domain/retry"}, "properties": {"repobilityId": "9ab501da227bea45", "scanner": "scanner-primary", "fingerprint": "0eebea7786f4e81e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1aa8bdc1db361feb", "level": "note", "message": {"text": "Unused endpoint: GET /api/domains"}, "properties": {"repobilityId": "c007342c1ab78cd6", "scanner": "scanner-primary", "fingerprint": "1aa8bdc1db361feb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-19f30ba96c03dbf3", "level": "note", "message": {"text": "Unused endpoint: POST /api/map-bad"}, "properties": {"repobilityId": "538d8253a8f8de60", "scanner": "scanner-primary", "fingerprint": "19f30ba96c03dbf3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-47ff676cc992bdd6", "level": "note", "message": {"text": "Unused endpoint: POST /api/map-escort"}, "properties": {"repobilityId": "63d0e207c0d16f10", "scanner": "scanner-primary", "fingerprint": "47ff676cc992bdd6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}