{"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-bab71d926531c91a", "name": "Icon-only button without accessible name \u2014 components/LeadMovementScanModal.jsx:233", "shortDescription": {"text": "Icon-only button without accessible name \u2014 components/LeadMovementScanModal.jsx:233"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-290dea36beb637d3", "name": "Stray `console.log` in TS/JS \u2014 components/LeadMovementScanModal.jsx:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 components/LeadMovementScanModal.jsx:24"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e92a6789fd282ff8", "name": "Icon-only button without accessible name \u2014 components/SignalScope.jsx:7616", "shortDescription": {"text": "Icon-only button without accessible name \u2014 components/SignalScope.jsx:7616"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f3950bc0124aee24", "name": "Stray `console.log` in TS/JS \u2014 components/SignalScope.jsx:246", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 components/SignalScope.jsx:246"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6fe371f83c94b862", "name": "Stray `console.log` in TS/JS \u2014 app/api/post-demo/route.js:230", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/post-demo/route.js:230"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-496731379b24c1b0", "name": "Stray `console.log` in TS/JS \u2014 app/api/unipile-triggers/route.js:364", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/unipile-triggers/route.js:364"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dab1b37a50217e27", "name": "Stray `console.log` in TS/JS \u2014 app/api/outreach/route.js:197", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/outreach/route.js:197"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1de6324690e89545", "name": "Stray `console.log` in TS/JS \u2014 app/api/resolve-linkedin/route.js:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/resolve-linkedin/route.js:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fe67f934828a2949", "name": "Stray `console.log` in TS/JS \u2014 app/api/ga/route.js:804", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/ga/route.js:804"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bc13202d1b9fa87b", "name": "Stray `console.log` in TS/JS \u2014 app/api/airtable/route.js:771", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/airtable/route.js:771"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6aaf77d7f9b288b6", "name": "Stray `console.log` in TS/JS \u2014 app/api/linkedin-posts/route.js:131", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/linkedin-posts/route.js:131"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-acc9fccc93b1e062", "name": "Stray `console.log` in TS/JS \u2014 app/api/scan-leads/route.js:532", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/scan-leads/route.js:532"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-29d2731fe57aff75", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/outreach/route.js:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/outreach/route.js:104"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2afde06abf0a36b3", "name": "Stray `console.log` in TS/JS \u2014 app/api/sidekick/auto-batch/generate/route.js:633", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/sidekick/auto-batch/generate/route.js:633"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c31ff4ecba7f7fe5", "name": "Stray `console.log` in TS/JS \u2014 app/api/hubspot/route.js:140", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/hubspot/route.js:140"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-077dfcb6f27abb7b", "name": "Stray `console.log` in TS/JS \u2014 app/api/scan/route.js:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/scan/route.js:74"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b5824d491ca5d8a8", "name": "Stray `console.log` in TS/JS \u2014 app/api/enrich/route.js:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/enrich/route.js:98"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6cd843aa879934aa", "name": "Stray `console.log` in TS/JS \u2014 app/api/email-campaign/route.js:484", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/email-campaign/route.js:484"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-482b07bedf61b67d", "name": "Stray `console.log` in TS/JS \u2014 lib/ai-usage.js:126", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/ai-usage.js:126"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bd077da0be8acf71", "name": "Stray `console.log` in TS/JS \u2014 lib/rapidapi-usage.js:77", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/rapidapi-usage.js:77"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dee5326dc943b73f", "name": "Stray `console.log` in TS/JS \u2014 lib/linkedin-fetch.js:172", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/linkedin-fetch.js:172"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a429428da4552687", "name": "Privileged port 12 in use", "shortDescription": {"text": "Privileged port 12 in use"}, "fullDescription": {"text": "Port 12 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46f55d0560305f84", "name": "Privileged port 16 in use", "shortDescription": {"text": "Privileged port 16 in use"}, "fullDescription": {"text": "Port 16 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d61d61eb2ce8d22", "name": "Privileged port 20 in use", "shortDescription": {"text": "Privileged port 20 in use"}, "fullDescription": {"text": "Port 20 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bcbc5683b8a5517b", "name": "Insecure pattern 'cors_wildcard' in app/api/export/outreach/route.js:27", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in app/api/export/outreach/route.js:27"}, "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-fed76c9eda58b0e7", "name": "Very large file: components/SignalScope.jsx (9090 lines)", "shortDescription": {"text": "Very large file: components/SignalScope.jsx (9090 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-9af850326c9d65a9", "name": "Very large file: app/api/outreach/route.js (2484 lines)", "shortDescription": {"text": "Very large file: app/api/outreach/route.js (2484 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-2083751aff2ee3b1", "name": "Very large file: app/api/ga/route.js (1308 lines)", "shortDescription": {"text": "Very large file: app/api/ga/route.js (1308 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-57b3f816f83d1e99", "name": "Very large file: app/api/airtable/route.js (2292 lines)", "shortDescription": {"text": "Very large file: app/api/airtable/route.js (2292 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-c4cbf6de766a42f2", "name": "Very large file: app/api/linkedin-posts/route.js (1833 lines)", "shortDescription": {"text": "Very large file: app/api/linkedin-posts/route.js (1833 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-0f142f26066ea519", "name": "Very large file: app/api/hubspot/route.js (1596 lines)", "shortDescription": {"text": "Very large file: app/api/hubspot/route.js (1596 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-ae405257b591bfe0", "name": "Very large file: app/api/scan/route.js (1390 lines)", "shortDescription": {"text": "Very large file: app/api/scan/route.js (1390 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 80 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 131 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 21 placeholder/mock markers across 6 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-11825279136b53a3", "name": "CI is configured but no tests are detected", "shortDescription": {"text": "CI is configured but no tests are detected"}, "fullDescription": {"text": "A CI pipeline exists, but the scan found no test files to gate. Opus labeled this generated-code pattern as config theater: release machinery exists, but it has little behavioral signal."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, tests. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, tests. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-4df5e0af35aad9d4", "name": "Commented-code block (9 lines) in components/LeadMovementScanModal.jsx:39", "shortDescription": {"text": "Commented-code block (9 lines) in components/LeadMovementScanModal.jsx:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2c8e4aa384c0ce7", "name": "Commented-code block (6 lines) in components/SignalScope.jsx:1132", "shortDescription": {"text": "Commented-code block (6 lines) in components/SignalScope.jsx:1132"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58f061861633195b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/SignalScope.jsx:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/SignalScope.jsx:7"}, "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-58d4652062bdbe73", "name": "Commented-code block (7 lines) in app/page.js:9", "shortDescription": {"text": "Commented-code block (7 lines) in app/page.js:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3fa018b4d6cc1e9a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/post-demo/route.js:25", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/post-demo/route.js:25"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc0f8232663cba58", "name": "Commented-code block (6 lines) in app/api/unipile-triggers/route.js:138", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/unipile-triggers/route.js:138"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3259f9b658f71b1b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/unipile-triggers/route.js:95", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/unipile-triggers/route.js:95"}, "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-98176f9985d3208d", "name": "Commented-code block (5 lines) in app/api/outreach/route.js:329", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/outreach/route.js:329"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c4195f9967f9e852", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/outreach/route.js:391", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/outreach/route.js:391"}, "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-a7e6fc9cf43be1ea", "name": "Commented-code block (9 lines) in app/api/scan-run/route.js:4", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/scan-run/route.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8627ab5abaa41a67", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/scan-run/route.js:57", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/scan-run/route.js:57"}, "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-841a2c452d2f80de", "name": "Commented-code block (7 lines) in app/api/ga/route.js:795", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/ga/route.js:795"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a57d091d249d5f68", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/ga/route.js:26", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/ga/route.js:26"}, "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-4de3359d44ac15bc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/ga/oauth/callback/route.js:105", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/ga/oauth/callback/route.js:105"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f29f64fcd87f27e7", "name": "Commented-code block (7 lines) in app/api/company-posts/route.js:5", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/company-posts/route.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be9fa5f9b5883849", "name": "Commented-code block (7 lines) in app/api/airtable/route.js:10", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/airtable/route.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22ada88d31228103", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/airtable/route.js:75", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/airtable/route.js:75"}, "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-2b3cc5c548ca1b46", "name": "Commented-code block (7 lines) in app/api/linkedin-posts/route.js:19", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/linkedin-posts/route.js:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-532b6258decf8d78", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/linkedin-posts/route.js:51", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/linkedin-posts/route.js:51"}, "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-f07bece9f11206e7", "name": "Commented-code block (6 lines) in app/api/setup-diagnostic/route.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/setup-diagnostic/route.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-081d7b69f6fd2b07", "name": "Commented-code block (5 lines) in app/api/scan-leads/route.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/scan-leads/route.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a2ad070a8544bf1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/scan-leads/route.js:85", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/scan-leads/route.js:85"}, "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-78a6e64603737edc", "name": "Commented-code block (7 lines) in app/api/setup-fix/route.js:112", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/setup-fix/route.js:112"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64d2873b4c9afdf5", "name": "Commented-code block (6 lines) in app/api/cron/outreach/route.js:10", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/outreach/route.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-313c3abe5b15325f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/outreach/route.js:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/outreach/route.js:71"}, "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-48d1be873a3d0744", "name": "Commented-code block (5 lines) in app/api/cron/outreach/status/route.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/cron/outreach/status/route.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d0430f0a64c049a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/outreach/status/route.js:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/outreach/status/route.js:44"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ae5f02df9876dc87", "name": "Commented-code block (6 lines) in app/api/sidekick/enrich-phone/route.js:12", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/sidekick/enrich-phone/route.js: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-da9bd1f4c29e3b01", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/enrich-phone/route.js:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/enrich-phone/route.js:71"}, "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-aae36b6a4845c97a", "name": "Commented-code block (5 lines) in app/api/sidekick/count/route.js:43", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/sidekick/count/route.js:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3670bc834b507b97", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/count/route.js:75", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/count/route.js:75"}, "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-51d7e6f058061c86", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/messages-feed/route.js:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/messages-feed/route.js:63"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ec8087101810970e", "name": "Commented-code block (11 lines) in app/api/sidekick/movement-task-health/route.js:13", "shortDescription": {"text": "Commented-code block (11 lines) in app/api/sidekick/movement-task-health/route.js:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f63554d6d9608678", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/movement-scan-start/route.js:73", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/movement-scan-start/route.js:73"}, "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-56c73347bede00d1", "name": "Commented-code block (8 lines) in app/api/sidekick/archive-aged-posts/route.js:11", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/sidekick/archive-aged-posts/route.js:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb97cdb302e249e3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/archive-aged-posts/route.js:65", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/archive-aged-posts/route.js:65"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db5e867145e1a400", "name": "Commented-code block (15 lines) in app/api/sidekick/auto-batch/generate/route.js:19", "shortDescription": {"text": "Commented-code block (15 lines) in app/api/sidekick/auto-batch/generate/route.js:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ac083266c1012c1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/auto-batch/generate/route.js:101", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/auto-batch/generate/route.js:101"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b6d01fb2c02562e9", "name": "Commented-code block (5 lines) in app/api/sidekick/auto-batch/reset/route.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/sidekick/auto-batch/reset/route.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-010816be20fa2584", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/auto-batch/reset/route.js:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/auto-batch/reset/route.js:36"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-38a66d6dfb5798a4", "name": "Commented-code block (7 lines) in app/api/sidekick/auto-batch/pending/route.js:11", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/sidekick/auto-batch/pending/route.js:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d10915af25b6c32", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/auto-batch/pending/route.js:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/auto-batch/pending/route.js:71"}, "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-1f32f8a21d8b5466", "name": "Commented-code block (10 lines) in app/api/sidekick/auto-batch/action/route.js:20", "shortDescription": {"text": "Commented-code block (10 lines) in app/api/sidekick/auto-batch/action/route.js:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7f2cdd3b5c6da1a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/auto-batch/action/route.js:62", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/auto-batch/action/route.js:62"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1f5207123e027bb3", "name": "Commented-code block (5 lines) in app/api/sidekick/top-leads-to-call/route.js:9", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/sidekick/top-leads-to-call/route.js:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a877243dd9b5eb43", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/top-leads-to-call/route.js:41", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/top-leads-to-call/route.js:41"}, "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-4dd497a687711627", "name": "Commented-code block (5 lines) in app/api/sidekick/feed/route.js:14", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/sidekick/feed/route.js:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9cf8e0344fa18da2", "name": "Commented-code block (10 lines) in app/api/sidekick/movement-scan-tick/route.js:9", "shortDescription": {"text": "Commented-code block (10 lines) in app/api/sidekick/movement-scan-tick/route.js:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2e9734d25fb1752", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/movement-scan-tick/route.js:109", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/movement-scan-tick/route.js:109"}, "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-df1745c7fc64cd6a", "name": "Commented-code block (6 lines) in app/api/sidekick/movement-scan-status/route.js:11", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/sidekick/movement-scan-status/route.js:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fc5330a8d4ded82e", "name": "Commented-code block (9 lines) in app/api/sidekick/diagnose-ai/route.js:8", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/sidekick/diagnose-ai/route.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6706b06d31f3e653", "name": "Commented-code block (6 lines) in app/api/sidekick/chat-log/route.js:16", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/sidekick/chat-log/route.js:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8d1285498ce83643", "name": "Commented-code block (5 lines) in app/api/sidekick/handled/route.js:10", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/sidekick/handled/route.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-439807b168fc2f99", "name": "Commented-code block (9 lines) in app/api/sidekick/movement-rebuild-tasks/route.js:7", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/sidekick/movement-rebuild-tasks/route.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c94dbbc0cdaf28e6", "name": "Commented-code block (5 lines) in app/api/sidekick/movement-scan-stop/route.js:11", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/sidekick/movement-scan-stop/route.js:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4e4b2f50917fe04", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/movement-scan-stop/route.js:58", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/movement-scan-stop/route.js:58"}, "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-362e49483fd8db57", "name": "Commented-code block (6 lines) in app/api/sidekick/relevance/route.js:11", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/sidekick/relevance/route.js:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1247b4e96b7e86c", "name": "Commented-code block (8 lines) in app/api/sidekick/scan/route.js:15", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/sidekick/scan/route.js: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-5cbd83832fc72acb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/scan/route.js:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/scan/route.js:50"}, "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-a1e847f0a6cae96a", "name": "Commented-code block (5 lines) in app/api/sidekick/action/route.js:17", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/sidekick/action/route.js:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1c937c07532f096", "name": "Commented-code block (5 lines) in app/api/sidekick/preferences/route.js:59", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/sidekick/preferences/route.js:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9cd22bdef696034a", "name": "Commented-code block (5 lines) in app/api/sidekick/feedback/route.js:9", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/sidekick/feedback/route.js:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8acc102848292614", "name": "Commented-code block (5 lines) in app/api/hubspot/route.js:520", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/hubspot/route.js:520"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-437f51cb71adc1a5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/hubspot/route.js:29", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/hubspot/route.js:29"}, "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-309956487d276da5", "name": "Commented-code block (7 lines) in app/api/scan/route.js:6", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/scan/route.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-50bd56df64ea48b5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/scan/route.js:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/scan/route.js:7"}, "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-8642810c3c7c7fd2", "name": "Commented-code block (5 lines) in app/api/admin-auth/route.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin-auth/route.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3678163f4991c8ac", "name": "Commented-code block (9 lines) in app/api/unipile-health/route.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/unipile-health/route.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-635dddfc4f11f505", "name": "Commented-code block (10 lines) in app/api/review-feedback/route.js:8", "shortDescription": {"text": "Commented-code block (10 lines) in app/api/review-feedback/route.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bdb8190a4ef1429f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/review-feedback/route.js:67", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/review-feedback/route.js:67"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-11476ce96c803a94", "name": "Commented-code block (5 lines) in app/api/debug/jobs-prefilter/route.js:12", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/debug/jobs-prefilter/route.js: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-0ab41a9517bfa492", "name": "Commented-code block (5 lines) in app/api/debug/article-fetch/route.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/debug/article-fetch/route.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16784471f4032911", "name": "Legacy-named symbol `daysOld` in app/api/debug/jobs/route.js:239", "shortDescription": {"text": "Legacy-named symbol `daysOld` in app/api/debug/jobs/route.js:239"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eaacdd95b65cb0e4", "name": "Commented-code block (6 lines) in app/api/debug/jobs/route.js:16", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/debug/jobs/route.js:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1fa24e5c38b1ca6a", "name": "Commented-code block (5 lines) in app/api/role-check/route.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/role-check/route.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-94d055db5699589f", "name": "Commented-code block (5 lines) in app/api/email-campaign/route.js:190", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/email-campaign/route.js:190"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1ddd6f60a69ae3a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/email-campaign/route.js:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/email-campaign/route.js:54"}, "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-265963d9503a6b2d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/export/outreach/route.js:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/export/outreach/route.js:13"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c38aaf050faa8d17", "name": "Commented-code block (7 lines) in lib/message-merge.js:10", "shortDescription": {"text": "Commented-code block (7 lines) in lib/message-merge.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ad3d529b6278d2c", "name": "Commented-code block (11 lines) in lib/composite-score.js:1", "shortDescription": {"text": "Commented-code block (11 lines) in lib/composite-score.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1a76a37d0456200", "name": "Commented-code block (5 lines) in lib/movement-detection.js:13", "shortDescription": {"text": "Commented-code block (5 lines) in lib/movement-detection.js:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ad4dc42b813cf28", "name": "Commented-code block (5 lines) in lib/ai-usage.js:31", "shortDescription": {"text": "Commented-code block (5 lines) in lib/ai-usage.js:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7490c17efd0a3532", "name": "Commented-code block (6 lines) in lib/company-match.js:4", "shortDescription": {"text": "Commented-code block (6 lines) in lib/company-match.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4304136912d22ed9", "name": "Commented-code block (6 lines) in lib/google-news-decoder.js:88", "shortDescription": {"text": "Commented-code block (6 lines) in lib/google-news-decoder.js:88"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-529588c76ade262c", "name": "Commented-code block (5 lines) in lib/relevance-rules.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in lib/relevance-rules.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6bb32fc0c936c8ce", "name": "Commented-code block (7 lines) in lib/lead-brief.js:6", "shortDescription": {"text": "Commented-code block (7 lines) in lib/lead-brief.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1d9482d56cc6765", "name": "Commented-code block (6 lines) in lib/connector-flags.js:9", "shortDescription": {"text": "Commented-code block (6 lines) in lib/connector-flags.js:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c61451d9bdaf2bb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/rapidapi-usage.js:146", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/rapidapi-usage.js:146"}, "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-2f4a8eeb35f12cd8", "name": "Commented-code block (5 lines) in lib/linkedin-fetch.js:92", "shortDescription": {"text": "Commented-code block (5 lines) in lib/linkedin-fetch.js:92"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d93bde4914886748", "name": "Commented-code block (8 lines) in lib/role-freshness.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in lib/role-freshness.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/23091"}, "properties": {"repository": "Xyz7765007/news-material", "repoUrl": "https://github.com/Xyz7765007/news-material", "branch": "main"}, "results": [{"ruleId": "scanner-bab71d926531c91a", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 components/LeadMovementScanModal.jsx:233"}, "properties": {"repobilityId": "db470980844e385b", "scanner": "scanner-primary", "fingerprint": "bab71d926531c91a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-290dea36beb637d3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 components/LeadMovementScanModal.jsx:24"}, "properties": {"repobilityId": "bc80d66489d88ce8", "scanner": "scanner-primary", "fingerprint": "290dea36beb637d3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e92a6789fd282ff8", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 components/SignalScope.jsx:7616"}, "properties": {"repobilityId": "eb18a33ae0ec3b58", "scanner": "scanner-primary", "fingerprint": "e92a6789fd282ff8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-f3950bc0124aee24", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 components/SignalScope.jsx:246"}, "properties": {"repobilityId": "1d5b550f132e886c", "scanner": "scanner-primary", "fingerprint": "f3950bc0124aee24", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6fe371f83c94b862", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/post-demo/route.js:230"}, "properties": {"repobilityId": "2b034030cc60bb0b", "scanner": "scanner-primary", "fingerprint": "6fe371f83c94b862", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-496731379b24c1b0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/unipile-triggers/route.js:364"}, "properties": {"repobilityId": "8fb9b3dc8e69239e", "scanner": "scanner-primary", "fingerprint": "496731379b24c1b0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dab1b37a50217e27", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/outreach/route.js:197"}, "properties": {"repobilityId": "b0000dc1cd602832", "scanner": "scanner-primary", "fingerprint": "dab1b37a50217e27", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1de6324690e89545", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/resolve-linkedin/route.js:38"}, "properties": {"repobilityId": "a0e8527e86d7a552", "scanner": "scanner-primary", "fingerprint": "1de6324690e89545", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fe67f934828a2949", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/ga/route.js:804"}, "properties": {"repobilityId": "d8ca2b4d3ea70146", "scanner": "scanner-primary", "fingerprint": "fe67f934828a2949", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bc13202d1b9fa87b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/airtable/route.js:771"}, "properties": {"repobilityId": "b1ed69282b8f2953", "scanner": "scanner-primary", "fingerprint": "bc13202d1b9fa87b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6aaf77d7f9b288b6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/linkedin-posts/route.js:131"}, "properties": {"repobilityId": "cf2868ec1f0ab240", "scanner": "scanner-primary", "fingerprint": "6aaf77d7f9b288b6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-acc9fccc93b1e062", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/scan-leads/route.js:532"}, "properties": {"repobilityId": "d28f947d120e4ebf", "scanner": "scanner-primary", "fingerprint": "acc9fccc93b1e062", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-29d2731fe57aff75", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/outreach/route.js:104"}, "properties": {"repobilityId": "6dcce43ee4cf6034", "scanner": "scanner-primary", "fingerprint": "29d2731fe57aff75", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2afde06abf0a36b3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/sidekick/auto-batch/generate/route.js:633"}, "properties": {"repobilityId": "ce506f82d288d437", "scanner": "scanner-primary", "fingerprint": "2afde06abf0a36b3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c31ff4ecba7f7fe5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/hubspot/route.js:140"}, "properties": {"repobilityId": "faa6ebd97bcbfb6d", "scanner": "scanner-primary", "fingerprint": "c31ff4ecba7f7fe5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-077dfcb6f27abb7b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/scan/route.js:74"}, "properties": {"repobilityId": "87a92afd59f55e12", "scanner": "scanner-primary", "fingerprint": "077dfcb6f27abb7b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b5824d491ca5d8a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/enrich/route.js:98"}, "properties": {"repobilityId": "a4251864ea451d90", "scanner": "scanner-primary", "fingerprint": "b5824d491ca5d8a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6cd843aa879934aa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/email-campaign/route.js:484"}, "properties": {"repobilityId": "9fed9ee107eb3756", "scanner": "scanner-primary", "fingerprint": "6cd843aa879934aa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-482b07bedf61b67d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/ai-usage.js:126"}, "properties": {"repobilityId": "1d62881fa16b4fda", "scanner": "scanner-primary", "fingerprint": "482b07bedf61b67d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bd077da0be8acf71", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/rapidapi-usage.js:77"}, "properties": {"repobilityId": "9254f43ab466fd8a", "scanner": "scanner-primary", "fingerprint": "bd077da0be8acf71", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dee5326dc943b73f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/linkedin-fetch.js:172"}, "properties": {"repobilityId": "4d57446620316cf5", "scanner": "scanner-primary", "fingerprint": "dee5326dc943b73f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a429428da4552687", "level": "warning", "message": {"text": "Privileged port 12 in use"}, "properties": {"repobilityId": "65e7eefa33f2def4", "scanner": "scanner-primary", "fingerprint": "a429428da4552687", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "outreach-cron.github-actions.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-46f55d0560305f84", "level": "warning", "message": {"text": "Privileged port 16 in use"}, "properties": {"repobilityId": "d31009168c502ace", "scanner": "scanner-primary", "fingerprint": "46f55d0560305f84", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "outreach-cron.github-actions.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9d61d61eb2ce8d22", "level": "warning", "message": {"text": "Privileged port 20 in use"}, "properties": {"repobilityId": "a59f3e53d617e0f8", "scanner": "scanner-primary", "fingerprint": "9d61d61eb2ce8d22", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "outreach-cron.github-actions.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bcbc5683b8a5517b", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in app/api/export/outreach/route.js:27"}, "properties": {"repobilityId": "dfe753d550628e5f", "scanner": "scanner-primary", "fingerprint": "bcbc5683b8a5517b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/api/export/outreach/route.js"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-fed76c9eda58b0e7", "level": "note", "message": {"text": "Very large file: components/SignalScope.jsx (9090 lines)"}, "properties": {"repobilityId": "391f93088e927490", "scanner": "scanner-primary", "fingerprint": "fed76c9eda58b0e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9af850326c9d65a9", "level": "note", "message": {"text": "Very large file: app/api/outreach/route.js (2484 lines)"}, "properties": {"repobilityId": "f1e0f135d421c745", "scanner": "scanner-primary", "fingerprint": "9af850326c9d65a9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2083751aff2ee3b1", "level": "note", "message": {"text": "Very large file: app/api/ga/route.js (1308 lines)"}, "properties": {"repobilityId": "6cab6c02db792b50", "scanner": "scanner-primary", "fingerprint": "2083751aff2ee3b1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-57b3f816f83d1e99", "level": "note", "message": {"text": "Very large file: app/api/airtable/route.js (2292 lines)"}, "properties": {"repobilityId": "09cf9fa07e04a87c", "scanner": "scanner-primary", "fingerprint": "57b3f816f83d1e99", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c4cbf6de766a42f2", "level": "note", "message": {"text": "Very large file: app/api/linkedin-posts/route.js (1833 lines)"}, "properties": {"repobilityId": "abf9bc78cf169376", "scanner": "scanner-primary", "fingerprint": "c4cbf6de766a42f2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0f142f26066ea519", "level": "note", "message": {"text": "Very large file: app/api/hubspot/route.js (1596 lines)"}, "properties": {"repobilityId": "401712757fc80d7f", "scanner": "scanner-primary", "fingerprint": "0f142f26066ea519", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ae405257b591bfe0", "level": "note", "message": {"text": "Very large file: app/api/scan/route.js (1390 lines)"}, "properties": {"repobilityId": "81c03d4d10d9d9fe", "scanner": "scanner-primary", "fingerprint": "ae405257b591bfe0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "85e064137d2ea6db", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "3d0a8e4de349c6b9", "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": "176d76070cb92acc", "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": "d10a2372b6dc0868", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-11825279136b53a3", "level": "warning", "message": {"text": "CI is configured but no tests are detected"}, "properties": {"repobilityId": "5542ae518cee71c7", "scanner": "scanner-primary", "fingerprint": "11825279136b53a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "ci", "config-theater", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "74f17c50353f3380", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "c26e51111d9fe042", "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": "f1e491ed7b4c8cfd", "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": "7d28964b0ea677a9", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-4df5e0af35aad9d4", "level": "none", "message": {"text": "Commented-code block (9 lines) in components/LeadMovementScanModal.jsx:39"}, "properties": {"repobilityId": "d09af03e403266e7", "scanner": "scanner-primary", "fingerprint": "4df5e0af35aad9d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2c8e4aa384c0ce7", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/SignalScope.jsx:1132"}, "properties": {"repobilityId": "55af6c5b66571d04", "scanner": "scanner-primary", "fingerprint": "f2c8e4aa384c0ce7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58f061861633195b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/SignalScope.jsx:7"}, "properties": {"repobilityId": "9d9c7ed132803c5d", "scanner": "scanner-primary", "fingerprint": "58f061861633195b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-58d4652062bdbe73", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/page.js:9"}, "properties": {"repobilityId": "6e9f76b767e56776", "scanner": "scanner-primary", "fingerprint": "58d4652062bdbe73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3fa018b4d6cc1e9a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/post-demo/route.js:25"}, "properties": {"repobilityId": "dfd175768eeb258a", "scanner": "scanner-primary", "fingerprint": "3fa018b4d6cc1e9a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dc0f8232663cba58", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/unipile-triggers/route.js:138"}, "properties": {"repobilityId": "35508b02795df829", "scanner": "scanner-primary", "fingerprint": "dc0f8232663cba58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3259f9b658f71b1b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/unipile-triggers/route.js:95"}, "properties": {"repobilityId": "bb8ad0b8938899bd", "scanner": "scanner-primary", "fingerprint": "3259f9b658f71b1b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-98176f9985d3208d", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/outreach/route.js:329"}, "properties": {"repobilityId": "5e32e5886b91eadd", "scanner": "scanner-primary", "fingerprint": "98176f9985d3208d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4195f9967f9e852", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/outreach/route.js:391"}, "properties": {"repobilityId": "3d0c4297c5b74e05", "scanner": "scanner-primary", "fingerprint": "c4195f9967f9e852", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a7e6fc9cf43be1ea", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/scan-run/route.js:4"}, "properties": {"repobilityId": "165364eb58d06c1c", "scanner": "scanner-primary", "fingerprint": "a7e6fc9cf43be1ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8627ab5abaa41a67", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/scan-run/route.js:57"}, "properties": {"repobilityId": "c8cf4f11d5be61c0", "scanner": "scanner-primary", "fingerprint": "8627ab5abaa41a67", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-841a2c452d2f80de", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/ga/route.js:795"}, "properties": {"repobilityId": "436ba30caeb2a1c5", "scanner": "scanner-primary", "fingerprint": "841a2c452d2f80de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a57d091d249d5f68", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/ga/route.js:26"}, "properties": {"repobilityId": "11de6d26277fc8bb", "scanner": "scanner-primary", "fingerprint": "a57d091d249d5f68", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4de3359d44ac15bc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/ga/oauth/callback/route.js:105"}, "properties": {"repobilityId": "2ca930b4403c7a27", "scanner": "scanner-primary", "fingerprint": "4de3359d44ac15bc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f29f64fcd87f27e7", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/company-posts/route.js:5"}, "properties": {"repobilityId": "e951829014f018a9", "scanner": "scanner-primary", "fingerprint": "f29f64fcd87f27e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be9fa5f9b5883849", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/airtable/route.js:10"}, "properties": {"repobilityId": "95245bbc5108dc85", "scanner": "scanner-primary", "fingerprint": "be9fa5f9b5883849", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22ada88d31228103", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/airtable/route.js:75"}, "properties": {"repobilityId": "c980aa66b96b412f", "scanner": "scanner-primary", "fingerprint": "22ada88d31228103", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2b3cc5c548ca1b46", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/linkedin-posts/route.js:19"}, "properties": {"repobilityId": "028d40ddc0cb66e1", "scanner": "scanner-primary", "fingerprint": "2b3cc5c548ca1b46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-532b6258decf8d78", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/linkedin-posts/route.js:51"}, "properties": {"repobilityId": "770c18a883e5ae1b", "scanner": "scanner-primary", "fingerprint": "532b6258decf8d78", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f07bece9f11206e7", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/setup-diagnostic/route.js:1"}, "properties": {"repobilityId": "b83642c62faf72d1", "scanner": "scanner-primary", "fingerprint": "f07bece9f11206e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-081d7b69f6fd2b07", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/scan-leads/route.js:7"}, "properties": {"repobilityId": "c03ddbdd96ad5fa0", "scanner": "scanner-primary", "fingerprint": "081d7b69f6fd2b07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a2ad070a8544bf1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/scan-leads/route.js:85"}, "properties": {"repobilityId": "209d39fc6c225cd8", "scanner": "scanner-primary", "fingerprint": "7a2ad070a8544bf1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-78a6e64603737edc", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/setup-fix/route.js:112"}, "properties": {"repobilityId": "4d180a4b7a64eb91", "scanner": "scanner-primary", "fingerprint": "78a6e64603737edc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64d2873b4c9afdf5", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/outreach/route.js:10"}, "properties": {"repobilityId": "dc675581179251a2", "scanner": "scanner-primary", "fingerprint": "64d2873b4c9afdf5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-313c3abe5b15325f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/outreach/route.js:71"}, "properties": {"repobilityId": "23121c5ca7db758b", "scanner": "scanner-primary", "fingerprint": "313c3abe5b15325f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-48d1be873a3d0744", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/cron/outreach/status/route.js:3"}, "properties": {"repobilityId": "639d5be37678ce6e", "scanner": "scanner-primary", "fingerprint": "48d1be873a3d0744", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d0430f0a64c049a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/outreach/status/route.js:44"}, "properties": {"repobilityId": "19ebf6b14e93385f", "scanner": "scanner-primary", "fingerprint": "7d0430f0a64c049a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ae5f02df9876dc87", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/sidekick/enrich-phone/route.js:12"}, "properties": {"repobilityId": "e435f7ad953660ae", "scanner": "scanner-primary", "fingerprint": "ae5f02df9876dc87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da9bd1f4c29e3b01", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/enrich-phone/route.js:71"}, "properties": {"repobilityId": "0819854d0f6ec18a", "scanner": "scanner-primary", "fingerprint": "da9bd1f4c29e3b01", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-aae36b6a4845c97a", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/sidekick/count/route.js:43"}, "properties": {"repobilityId": "8f7bdccee8f65093", "scanner": "scanner-primary", "fingerprint": "aae36b6a4845c97a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3670bc834b507b97", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/count/route.js:75"}, "properties": {"repobilityId": "1d840ad42181afad", "scanner": "scanner-primary", "fingerprint": "3670bc834b507b97", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-51d7e6f058061c86", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/messages-feed/route.js:63"}, "properties": {"repobilityId": "5b5090158a3a2af6", "scanner": "scanner-primary", "fingerprint": "51d7e6f058061c86", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ec8087101810970e", "level": "none", "message": {"text": "Commented-code block (11 lines) in app/api/sidekick/movement-task-health/route.js:13"}, "properties": {"repobilityId": "d68a08827c1b907c", "scanner": "scanner-primary", "fingerprint": "ec8087101810970e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f63554d6d9608678", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/movement-scan-start/route.js:73"}, "properties": {"repobilityId": "370d54e6e883021d", "scanner": "scanner-primary", "fingerprint": "f63554d6d9608678", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-56c73347bede00d1", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/sidekick/archive-aged-posts/route.js:11"}, "properties": {"repobilityId": "b1f4c20c5a6447fa", "scanner": "scanner-primary", "fingerprint": "56c73347bede00d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb97cdb302e249e3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/archive-aged-posts/route.js:65"}, "properties": {"repobilityId": "1b183713ff1a7430", "scanner": "scanner-primary", "fingerprint": "eb97cdb302e249e3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-db5e867145e1a400", "level": "none", "message": {"text": "Commented-code block (15 lines) in app/api/sidekick/auto-batch/generate/route.js:19"}, "properties": {"repobilityId": "8d22a7785bc382d3", "scanner": "scanner-primary", "fingerprint": "db5e867145e1a400", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ac083266c1012c1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/auto-batch/generate/route.js:101"}, "properties": {"repobilityId": "c8e2a17bbffcd201", "scanner": "scanner-primary", "fingerprint": "3ac083266c1012c1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b6d01fb2c02562e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/sidekick/auto-batch/reset/route.js:3"}, "properties": {"repobilityId": "10a57ba797fdeb3f", "scanner": "scanner-primary", "fingerprint": "b6d01fb2c02562e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-010816be20fa2584", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/auto-batch/reset/route.js:36"}, "properties": {"repobilityId": "6a244ba16462458f", "scanner": "scanner-primary", "fingerprint": "010816be20fa2584", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-38a66d6dfb5798a4", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/sidekick/auto-batch/pending/route.js:11"}, "properties": {"repobilityId": "8c4d9a0b891ed766", "scanner": "scanner-primary", "fingerprint": "38a66d6dfb5798a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d10915af25b6c32", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/auto-batch/pending/route.js:71"}, "properties": {"repobilityId": "1ef89349efa098fe", "scanner": "scanner-primary", "fingerprint": "2d10915af25b6c32", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1f32f8a21d8b5466", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/api/sidekick/auto-batch/action/route.js:20"}, "properties": {"repobilityId": "f1f67009393406aa", "scanner": "scanner-primary", "fingerprint": "1f32f8a21d8b5466", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7f2cdd3b5c6da1a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/auto-batch/action/route.js:62"}, "properties": {"repobilityId": "95d3cd515da868c4", "scanner": "scanner-primary", "fingerprint": "c7f2cdd3b5c6da1a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1f5207123e027bb3", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/sidekick/top-leads-to-call/route.js:9"}, "properties": {"repobilityId": "1dfc1cf4fa8e89b9", "scanner": "scanner-primary", "fingerprint": "1f5207123e027bb3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a877243dd9b5eb43", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/top-leads-to-call/route.js:41"}, "properties": {"repobilityId": "eeba082a3f1118bb", "scanner": "scanner-primary", "fingerprint": "a877243dd9b5eb43", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4dd497a687711627", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/sidekick/feed/route.js:14"}, "properties": {"repobilityId": "5888e75278d5ce45", "scanner": "scanner-primary", "fingerprint": "4dd497a687711627", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9cf8e0344fa18da2", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/api/sidekick/movement-scan-tick/route.js:9"}, "properties": {"repobilityId": "a1a7df8f5c418d13", "scanner": "scanner-primary", "fingerprint": "9cf8e0344fa18da2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2e9734d25fb1752", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/movement-scan-tick/route.js:109"}, "properties": {"repobilityId": "f8570de5abcbf458", "scanner": "scanner-primary", "fingerprint": "f2e9734d25fb1752", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-df1745c7fc64cd6a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/sidekick/movement-scan-status/route.js:11"}, "properties": {"repobilityId": "2e2ab75ca0613618", "scanner": "scanner-primary", "fingerprint": "df1745c7fc64cd6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc5330a8d4ded82e", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/sidekick/diagnose-ai/route.js:8"}, "properties": {"repobilityId": "7a92912c9a6da929", "scanner": "scanner-primary", "fingerprint": "fc5330a8d4ded82e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6706b06d31f3e653", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/sidekick/chat-log/route.js:16"}, "properties": {"repobilityId": "fd759b5ed41ee0f1", "scanner": "scanner-primary", "fingerprint": "6706b06d31f3e653", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d1285498ce83643", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/sidekick/handled/route.js:10"}, "properties": {"repobilityId": "5015e70d29ecda69", "scanner": "scanner-primary", "fingerprint": "8d1285498ce83643", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-439807b168fc2f99", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/sidekick/movement-rebuild-tasks/route.js:7"}, "properties": {"repobilityId": "885c0e0c94ea3fb2", "scanner": "scanner-primary", "fingerprint": "439807b168fc2f99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c94dbbc0cdaf28e6", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/sidekick/movement-scan-stop/route.js:11"}, "properties": {"repobilityId": "aadcf22356c2cd66", "scanner": "scanner-primary", "fingerprint": "c94dbbc0cdaf28e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4e4b2f50917fe04", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/movement-scan-stop/route.js:58"}, "properties": {"repobilityId": "5aa13b6c95fbd49e", "scanner": "scanner-primary", "fingerprint": "e4e4b2f50917fe04", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-362e49483fd8db57", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/sidekick/relevance/route.js:11"}, "properties": {"repobilityId": "c10aa527921e4c47", "scanner": "scanner-primary", "fingerprint": "362e49483fd8db57", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1247b4e96b7e86c", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/sidekick/scan/route.js:15"}, "properties": {"repobilityId": "1d247e1aebe064d4", "scanner": "scanner-primary", "fingerprint": "d1247b4e96b7e86c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5cbd83832fc72acb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sidekick/scan/route.js:50"}, "properties": {"repobilityId": "1ffebe08c2d87401", "scanner": "scanner-primary", "fingerprint": "5cbd83832fc72acb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a1e847f0a6cae96a", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/sidekick/action/route.js:17"}, "properties": {"repobilityId": "6d573fed8b7d22e0", "scanner": "scanner-primary", "fingerprint": "a1e847f0a6cae96a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1c937c07532f096", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/sidekick/preferences/route.js:59"}, "properties": {"repobilityId": "b2df890cdd2de349", "scanner": "scanner-primary", "fingerprint": "b1c937c07532f096", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9cd22bdef696034a", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/sidekick/feedback/route.js:9"}, "properties": {"repobilityId": "b6623317c1abcfd7", "scanner": "scanner-primary", "fingerprint": "9cd22bdef696034a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8acc102848292614", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/hubspot/route.js:520"}, "properties": {"repobilityId": "816a0bf5148acb00", "scanner": "scanner-primary", "fingerprint": "8acc102848292614", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-437f51cb71adc1a5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/hubspot/route.js:29"}, "properties": {"repobilityId": "a204b3436fc9b9a4", "scanner": "scanner-primary", "fingerprint": "437f51cb71adc1a5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-309956487d276da5", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/scan/route.js:6"}, "properties": {"repobilityId": "a9c7ead25c266dad", "scanner": "scanner-primary", "fingerprint": "309956487d276da5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50bd56df64ea48b5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/scan/route.js:7"}, "properties": {"repobilityId": "d15c1f1826810804", "scanner": "scanner-primary", "fingerprint": "50bd56df64ea48b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8642810c3c7c7fd2", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin-auth/route.js:7"}, "properties": {"repobilityId": "f3da91c4d0a479df", "scanner": "scanner-primary", "fingerprint": "8642810c3c7c7fd2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3678163f4991c8ac", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/unipile-health/route.js:1"}, "properties": {"repobilityId": "b87172ff7983aedd", "scanner": "scanner-primary", "fingerprint": "3678163f4991c8ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-635dddfc4f11f505", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/api/review-feedback/route.js:8"}, "properties": {"repobilityId": "c331582522749258", "scanner": "scanner-primary", "fingerprint": "635dddfc4f11f505", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bdb8190a4ef1429f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/review-feedback/route.js:67"}, "properties": {"repobilityId": "1fd895c849465f28", "scanner": "scanner-primary", "fingerprint": "bdb8190a4ef1429f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-11476ce96c803a94", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/debug/jobs-prefilter/route.js:12"}, "properties": {"repobilityId": "b0bd7df7420b0d03", "scanner": "scanner-primary", "fingerprint": "11476ce96c803a94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ab41a9517bfa492", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/debug/article-fetch/route.js:6"}, "properties": {"repobilityId": "e2cc31d32ebd6731", "scanner": "scanner-primary", "fingerprint": "0ab41a9517bfa492", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16784471f4032911", "level": "note", "message": {"text": "Legacy-named symbol `daysOld` in app/api/debug/jobs/route.js:239"}, "properties": {"repobilityId": "37be1a35d9c5f7b3", "scanner": "scanner-primary", "fingerprint": "16784471f4032911", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-eaacdd95b65cb0e4", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/debug/jobs/route.js:16"}, "properties": {"repobilityId": "8af2eb2038be0b35", "scanner": "scanner-primary", "fingerprint": "eaacdd95b65cb0e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fa24e5c38b1ca6a", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/role-check/route.js:4"}, "properties": {"repobilityId": "f83c69ce0ad557ab", "scanner": "scanner-primary", "fingerprint": "1fa24e5c38b1ca6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94d055db5699589f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/email-campaign/route.js:190"}, "properties": {"repobilityId": "d92ab3c1625a1914", "scanner": "scanner-primary", "fingerprint": "94d055db5699589f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1ddd6f60a69ae3a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/email-campaign/route.js:54"}, "properties": {"repobilityId": "6f1de87ab75a9f14", "scanner": "scanner-primary", "fingerprint": "b1ddd6f60a69ae3a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-265963d9503a6b2d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/export/outreach/route.js:13"}, "properties": {"repobilityId": "f1a485fb1d52079a", "scanner": "scanner-primary", "fingerprint": "265963d9503a6b2d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c38aaf050faa8d17", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/message-merge.js:10"}, "properties": {"repobilityId": "f7dd65af2e705569", "scanner": "scanner-primary", "fingerprint": "c38aaf050faa8d17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ad3d529b6278d2c", "level": "none", "message": {"text": "Commented-code block (11 lines) in lib/composite-score.js:1"}, "properties": {"repobilityId": "49df681a411aad9e", "scanner": "scanner-primary", "fingerprint": "8ad3d529b6278d2c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1a76a37d0456200", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/movement-detection.js:13"}, "properties": {"repobilityId": "e43cb1c546d2a1a7", "scanner": "scanner-primary", "fingerprint": "e1a76a37d0456200", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ad4dc42b813cf28", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/ai-usage.js:31"}, "properties": {"repobilityId": "529e243bc4560a72", "scanner": "scanner-primary", "fingerprint": "5ad4dc42b813cf28", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7490c17efd0a3532", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/company-match.js:4"}, "properties": {"repobilityId": "665f7be265b3acfb", "scanner": "scanner-primary", "fingerprint": "7490c17efd0a3532", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4304136912d22ed9", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/google-news-decoder.js:88"}, "properties": {"repobilityId": "f3eec8f486051b99", "scanner": "scanner-primary", "fingerprint": "4304136912d22ed9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-529588c76ade262c", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/relevance-rules.js:5"}, "properties": {"repobilityId": "a80c025ca5959ddf", "scanner": "scanner-primary", "fingerprint": "529588c76ade262c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6bb32fc0c936c8ce", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/lead-brief.js:6"}, "properties": {"repobilityId": "1ab93e2899025601", "scanner": "scanner-primary", "fingerprint": "6bb32fc0c936c8ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1d9482d56cc6765", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/connector-flags.js:9"}, "properties": {"repobilityId": "d3e49d65246b5acb", "scanner": "scanner-primary", "fingerprint": "d1d9482d56cc6765", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c61451d9bdaf2bb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/rapidapi-usage.js:146"}, "properties": {"repobilityId": "95c343a853506e89", "scanner": "scanner-primary", "fingerprint": "2c61451d9bdaf2bb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2f4a8eeb35f12cd8", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/linkedin-fetch.js:92"}, "properties": {"repobilityId": "600dde4ca74f98d0", "scanner": "scanner-primary", "fingerprint": "2f4a8eeb35f12cd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d93bde4914886748", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/role-freshness.js:1"}, "properties": {"repobilityId": "fc88a93bd38b8371", "scanner": "scanner-primary", "fingerprint": "d93bde4914886748", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}