{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c0e0b587f9397c2", "name": "Stray `console.log` in TS/JS \u2014 scripts/force-rematch-event.ts:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/force-rematch-event.ts:43"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b57c57b4f825b847", "name": "Stray `console.log` in TS/JS \u2014 scripts/debug-fetch-match.ts:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/debug-fetch-match.ts:47"}, "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-5f4b50168323120c", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-match-breakdown.ts:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-match-breakdown.ts:37"}, "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-39d5c69dec847ff0", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-users.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-users.ts:41"}, "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-69a5bc913602fefb", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-industry-tags.ts:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-industry-tags.ts:31"}, "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-ddfaf13f094ac468", "name": "Stray `console.log` in TS/JS \u2014 scripts/rematch-event.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/rematch-event.ts:34"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-953931a3a84c2b6e", "name": "Stray `console.log` in TS/JS \u2014 scripts/record-fn-deploy.ts:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/record-fn-deploy.ts:44"}, "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-2c109045043533b3", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-matching-e2e.ts:720", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-matching-e2e.ts:720"}, "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-f99992a5cc08bd65", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync-platform-admins.ts:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-platform-admins.ts:67"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-afaeb21cfb5035a9", "name": "Stray `console.log` in TS/JS \u2014 scripts/list-events.ts:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/list-events.ts:31"}, "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-bef84fae7ec881fc", "name": "Stray `console.log` in TS/JS \u2014 scripts/update-event-time.ts:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-event-time.ts:37"}, "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-6e938cced5212c02", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-generate-explanations.ts:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-generate-explanations.ts:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4a1c4212d2765fc0", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-company-metadata.ts:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-company-metadata.ts:45"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7a08e10c1af0c2b0", "name": "Stray `console.log` in TS/JS \u2014 scripts/inspect-test-event.ts:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/inspect-test-event.ts:43"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ff8d2a66257a882", "name": "Stray `console.log` in TS/JS \u2014 scripts/trigger-matching.ts:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/trigger-matching.ts:56"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ba8eaa85fed79fbe", "name": "Stray `console.log` in TS/JS \u2014 scripts/delete-all-system-matches.ts:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/delete-all-system-matches.ts:55"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ee965fbc95e9d47e", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-columns.ts:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-columns.ts:14"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8085c2d68c434798", "name": "Stray `console.log` in TS/JS \u2014 scripts/create-e2e-test-user.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/create-e2e-test-user.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c4fb5af7e075f15c", "name": "Stray `console.log` in TS/JS \u2014 scripts/live-check-offer-enrich.ts:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/live-check-offer-enrich.ts:43"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5f10af2369f1c91b", "name": "Stray `console.log` in TS/JS \u2014 scripts/trigger-all-matches.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/trigger-all-matches.ts:21"}, "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-f0a3d90d687ec6c5", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-matchmaker-user.ts:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-matchmaker-user.ts:25"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f3bc15c7d386cbb2", "name": "Stray `console.log` in TS/JS \u2014 scripts/lookup-test-users.ts:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lookup-test-users.ts:25"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fcea0d7902c1e5f8", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-survey-flow.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-survey-flow.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2b6a82bb54945206", "name": "Stray `console.log` in TS/JS \u2014 scripts/wipe-event-test-data.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/wipe-event-test-data.ts:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bc093e757019010c", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-matchmaker-direct.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-matchmaker-direct.ts:21"}, "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-f75b3b89d4fc8867", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-industry-tags-migration.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-industry-tags-migration.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bf85440e8ea9e976", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-offer-enrichment.ts:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-offer-enrichment.ts:22"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4cc1ae85a79ed5d2", "name": "Stray `console.log` in TS/JS \u2014 scripts/create-test-event.ts:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/create-test-event.ts:31"}, "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-8d79b7cbd0641277", "name": "Stray `console.log` in TS/JS \u2014 scripts/qa-inspect-matches.ts:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/qa-inspect-matches.ts:32"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ef6f30f24dcb3559", "name": "Stray `console.log` in TS/JS \u2014 scripts/rerun-derive.js:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/rerun-derive.js:30"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ff655c433b2f7811", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-matches.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-matches.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b40e33cc4148b8ea", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-uvu-demo.ts:150", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-uvu-demo.ts:150"}, "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-bf874498f69f358a", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-v8-real-user.ts:68", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-v8-real-user.ts:68"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df3870165e0d660e", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-explanations.ts:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-explanations.ts:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56ab348062e18a1f", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-demo-event.ts:327", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-demo-event.ts:327"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cc4f3e301a787b5a", "name": "Stray `console.log` in TS/JS \u2014 scripts/setup-test-attendees.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup-test-attendees.ts:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8ecbf7153de2b3c1", "name": "Stray `console.log` in TS/JS \u2014 scripts/backfill-industry-tags-ai.ts:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backfill-industry-tags-ai.ts:28"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f8e0b41cdb66f0a3", "name": "Stray `console.log` in TS/JS \u2014 scripts/update-event-name.ts:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-event-name.ts:42"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dba9af12a55b883f", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-email.ts:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-email.ts:54"}, "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-5bb40331ffd9cb52", "name": "Stray `console.log` in TS/JS \u2014 scripts/deploy-all.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/deploy-all.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3dc6fa5db4f3d35c", "name": "Stray `console.log` in TS/JS \u2014 scripts/run-matchmaker.ts:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-matchmaker.ts:39"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7df43c31dc9549a8", "name": "Stray `console.log` in TS/JS \u2014 scripts/run-update-industry-tags.ts:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-update-industry-tags.ts:23"}, "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-c62ffde89f223b15", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/derive-attendance/route.ts:456", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/derive-attendance/route.ts:456"}, "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-8bca921592d9a962", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/admin-send-networking-cards/route.ts:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/admin-send-networking-cards/route.ts:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-736c5fa01a8ccc2e", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/smart-refresh-matches/route.ts:99", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/smart-refresh-matches/route.ts:99"}, "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-aeafbeb6eaf54862", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/survey/test/route.ts:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/survey/test/route.ts:124"}, "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-776098118886bfe0", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/survey/[token]/route.ts:125", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/survey/[token]/route.ts:125"}, "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-041654f8869adc40", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/dev/test-email/route.ts:134", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/dev/test-email/route.ts:134"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-41074ef7cee4bbef", "name": "TODO/FIXME marker in shipping code \u2014 src/app/api/messages/send/route.ts:1", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/api/messages/send/route.ts:1"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9542bacc277f233c", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/networking-card/test/route.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/networking-card/test/route.ts:21"}, "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-bcc867f202550e5b", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/cron-refresh-matches/route.ts:70", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/cron-refresh-matches/route.ts:70"}, "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-82563fa18e5297f3", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/send-networking-card/route.ts:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/send-networking-card/route.ts:42"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d702836fa4c5cba1", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/suggest-linkedin/route.ts:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/suggest-linkedin/route.ts:42"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1dea50eec4c243e5", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/connect-qr/route.ts:111", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/connect-qr/route.ts:111"}, "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-27c95295103f314b", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/match-worker/route.ts:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/match-worker/route.ts:97"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f27aa95063835905", "name": "Stray `console.log` in TS/JS \u2014 src/app/admin/event/[eventId]/page.tsx:184", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/admin/event/[eventId]/page.tsx:184"}, "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-988fcec070260ec0", "name": "Stray `console.log` in TS/JS \u2014 src/app/survey/test/page.tsx:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/survey/test/page.tsx:66"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9cf53e20cb2abac3", "name": "Stray `console.log` in TS/JS \u2014 src/app/survey/test/info/page.tsx:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/survey/test/info/page.tsx:48"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d6695e85054a675f", "name": "Stray `console.log` in TS/JS \u2014 src/app/auth/callback/route.ts:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/auth/callback/route.ts:32"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e349fdd538d3cfa0", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/organizer-demo/layout.tsx:24", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/organizer-demo/layout.tsx:24"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d000b791edb1a443", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/organizer/layout.tsx:37", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/organizer/layout.tsx:37"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22cf743459b3f315", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/sponsor/event/[eventId]/page.tsx:726", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/sponsor/event/[eventId]/page.tsx:726"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-01ca485f192eff0c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/demo/demo-switcher.tsx:144", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/demo/demo-switcher.tsx:144"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0f7eb73963315bd", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/business-card.tsx:150", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/business-card.tsx:150"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a29516c09953d2fd", "name": "Stray `console.log` in TS/JS \u2014 src/components/profile/user-profile.tsx:651", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/profile/user-profile.tsx:651"}, "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-85a5a9c470978b40", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/home-page.tsx:2564", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/home-page.tsx:2564"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6811924fee4bd143", "name": "Stray `console.log` in TS/JS \u2014 src/components/home/home-page.tsx:366", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/home/home-page.tsx:366"}, "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-7a3eba48351eee59", "name": "Stray `console.log` in TS/JS \u2014 src/components/home/sms-notification-widget.tsx:102", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/home/sms-notification-widget.tsx:102"}, "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-11cc42e7da0afc19", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/meet-search.tsx:165", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/meet-search.tsx:165"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9c6bae6848109529", "name": "Stray `console.log` in TS/JS \u2014 src/components/auth/auth-form.tsx:96", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/auth/auth-form.tsx:96"}, "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-c7af755d64d928cf", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/messages/messages-page.tsx:524", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/messages/messages-page.tsx:524"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be897994eb36f229", "name": "TODO/FIXME marker in shipping code \u2014 src/components/messages/conversation-view.tsx:786", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/components/messages/conversation-view.tsx:786"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4dd7f8e7b77637cf", "name": "Stray `console.log` in TS/JS \u2014 src/components/messages/conversation-view.tsx:643", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/messages/conversation-view.tsx:643"}, "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-828c2ce386f8da92", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/settings/settings-page.tsx:1558", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/settings/settings-page.tsx:1558"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1015416fbbd9cbe2", "name": "Stray `console.log` in TS/JS \u2014 src/components/settings/settings-page.tsx:1348", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/settings/settings-page.tsx:1348"}, "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-3dc6224ead7c1d49", "name": "Icon-only button without accessible name \u2014 src/components/onboarding/new-onboarding-flow.tsx:1971", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/components/onboarding/new-onboarding-flow.tsx:1971"}, "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-c3167bf355559899", "name": "Stray `console.log` in TS/JS \u2014 src/components/onboarding/new-onboarding-flow.tsx:831", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/onboarding/new-onboarding-flow.tsx:831"}, "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-2362ff11d8c07dd7", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/organizer/organizer-event-analytics-dashboard.tsx:21", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/organizer/organizer-event-analytics-dashboard.tsx:212"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a27132186b964156", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/organizer/analytics-slide-over.tsx:66", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/organizer/analytics-slide-over.tsx:66"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9142b1d1e43948ef", "name": "Stray `console.log` in TS/JS \u2014 src/components/ui/qr-scanner.tsx:156", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/ui/qr-scanner.tsx:156"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6f5028ccc3a6eab7", "name": "Stray `console.log` in TS/JS \u2014 src/components/ui/event-join-scanner.tsx:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/ui/event-join-scanner.tsx:53"}, "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-817f9aa757e6b7b3", "name": "Stray `console.log` in TS/JS \u2014 src/components/ui/presence-avatar.tsx:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/ui/presence-avatar.tsx:71"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-40b783cd413483f4", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/ui/directory-search.tsx:81", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/ui/directory-search.tsx:81"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-00a28fbffd44b866", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/ui/match-card.tsx:99", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/ui/match-card.tsx:99"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c9f3348eb022fe42", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/qr-service.ts:39", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/qr-service.ts:39"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-421955b50c2587a5", "name": "Stray `console.log` in TS/JS \u2014 src/lib/qr-service.ts:107", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/qr-service.ts:107"}, "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-f28f2939ac0b3a7f", "name": "Stray `console.log` in TS/JS \u2014 src/lib/profile/linkedin-finder.ts:168", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/profile/linkedin-finder.ts:168"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-55d1515147511dcc", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/my-function/index.ts:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/my-function/index.ts:8"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4dbe96d7f0019aa3", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/question-engine/index.ts:335", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/question-engine/index.ts:335"}, "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-f4096ee180a64ba6", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/company-enrich/index.ts:324", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/company-enrich/index.ts:324"}, "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-63f90cbf6211f02e", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/fetch-company-metadata/index.ts:544", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/fetch-company-metadata/index.ts:544"}, "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-683e1b9ca13865f8", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/generate-match-explanations/index.ts:119", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/generate-match-explanations/index.ts:119"}, "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-2f7761b2480924d0", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/update-industry-tags/index.ts:232", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/update-industry-tags/index.ts:232"}, "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-952803e27c4fb788", "name": "Stray `console.log` in TS/JS \u2014 e2e/stress/event-join.spec.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 e2e/stress/event-join.spec.ts:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-907ed3c040f039c7", "name": "Stray `console.log` in TS/JS \u2014 e2e/stress/navigation-abuse.spec.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 e2e/stress/navigation-abuse.spec.ts:21"}, "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-3eb89679d385ae34", "name": "Stray `console.log` in TS/JS \u2014 e2e/stress/onboarding-driver.ts:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 e2e/stress/onboarding-driver.ts:64"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-330347246ed26812", "name": "Stray `console.log` in TS/JS \u2014 e2e/stress/onboarding.spec.ts:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 e2e/stress/onboarding.spec.ts:44"}, "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-937f687205380bd3", "name": "TODO/FIXME marker in shipping code \u2014 e2e/stress/accounts.setup.spec.ts:82", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 e2e/stress/accounts.setup.spec.ts:82"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60d937209afbccab", "name": "Stray `console.log` in TS/JS \u2014 e2e/stress/accounts.setup.spec.ts:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 e2e/stress/accounts.setup.spec.ts:73"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e30ccd47c73f2052", "name": "Stray `console.log` in TS/JS \u2014 e2e/stress/input-abuse.spec.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 e2e/stress/input-abuse.spec.ts:41"}, "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-4a4a4d3656844e3f", "name": "Privileged port 1000 in use", "shortDescription": {"text": "Privileged port 1000 in use"}, "fullDescription": {"text": "Port 1000 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-ab16bf6bcdb69ad3", "name": "Insecure pattern 'node_child_process' in scripts/record-fn-deploy.ts:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/record-fn-deploy.ts:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6007cce080b98a30", "name": "Possible secret in scripts/create-e2e-test-user.ts", "shortDescription": {"text": "Possible secret in scripts/create-e2e-test-user.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-695e279acaffea40", "name": "Possible secret in scripts/seed-uvu-demo.ts", "shortDescription": {"text": "Possible secret in scripts/seed-uvu-demo.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-c2d4d4ceca85c176", "name": "Possible secret in scripts/seed-demo-event.ts", "shortDescription": {"text": "Possible secret in scripts/seed-demo-event.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-b209372ab374b516", "name": "Insecure pattern 'node_child_process' in scripts/deploy-all.ts:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/deploy-all.ts:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9e81924273d1366d", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/question-engine/index.ts:11", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/question-engine/index.ts:11"}, "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-06ad807a7a5abdde", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/company-enrich/index.ts:7", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/company-enrich/index.ts:7"}, "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-79491d87eb01b4fd", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/generate-match-explanations/index.ts:114", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/generate-match-explanations/index.ts:114"}, "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-fae6a9289f56b4f7", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/matchmaker/index.ts:309", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/matchmaker/index.ts:309"}, "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-1ea1c4b861cc8cb1", "name": "Possible secret in e2e/helpers.ts", "shortDescription": {"text": "Possible secret in e2e/helpers.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-ddf78c73fd92b912", "name": "Very large file: src/app/admin/event/[eventId]/page.tsx (1373 lines)", "shortDescription": {"text": "Very large file: src/app/admin/event/[eventId]/page.tsx (1373 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-70483d4671000163", "name": "Very large file: src/components/profile/user-profile.tsx (1927 lines)", "shortDescription": {"text": "Very large file: src/components/profile/user-profile.tsx (1927 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-67242e1ffd3877d6", "name": "Very large file: src/components/home/home-page.tsx (2887 lines)", "shortDescription": {"text": "Very large file: src/components/home/home-page.tsx (2887 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-0218dadaa83ece87", "name": "Very large file: src/components/settings/settings-page.tsx (2654 lines)", "shortDescription": {"text": "Very large file: src/components/settings/settings-page.tsx (2654 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-ddc8ae7610614742", "name": "Very large file: src/components/onboarding/new-onboarding-flow.tsx (2638 lines)", "shortDescription": {"text": "Very large file: src/components/onboarding/new-onboarding-flow.tsx (2638 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-dec47202c089c88e", "name": "Very large file: src/components/onboarding/event-branching-onboarding.tsx (1452 lines)", "shortDescription": {"text": "Very large file: src/components/onboarding/event-branching-onboarding.tsx (1452 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-f2773b77f72d7c92", "name": "Very large file: src/lib/onboarding/engine.ts (1406 lines)", "shortDescription": {"text": "Very large file: src/lib/onboarding/engine.ts (1406 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-497f5ab95c53710f", "name": "Very large file: supabase/functions/matchmaker/index.ts (2268 lines)", "shortDescription": {"text": "Very large file: supabase/functions/matchmaker/index.ts (2268 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": "20 test file(s) for 276 source file(s) (ratio 0.07). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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 671 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 131 placeholder/mock markers across 34 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7691e921d67197b3", "name": "Agent authority lacks a verifier contract: .cursor/plans/unified-demo-mode.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .cursor/plans/unified-demo-mode.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4639005eec6a791d", "name": "Commented-code block (6 lines) in scripts/record-fn-deploy.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/record-fn-deploy.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db37ef61b22dd8ec", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-generate-explanations.ts:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-generate-explanations.ts:46"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-45e82bbf2c05c27e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/trigger-matching.ts:66", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/trigger-matching.ts:66"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4fc853868bae251a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/live-check-offer-enrich.ts:111", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/live-check-offer-enrich.ts:111"}, "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-b1964f1304477188", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-matchmaker-user.ts:52", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-matchmaker-user.ts:52"}, "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-95f5508ddfecd766", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-survey-flow.ts:39", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-survey-flow.ts:39"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-155e35f1de549fbf", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/apply-industry-tags-migration.ts:60", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/apply-industry-tags-migration.ts:60"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-08dc7a896f78cadb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/rerun-derive.js:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/rerun-derive.js:15"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-17105520ae1d5581", "name": "Commented-code block (6 lines) in scripts/seed-uvu-demo.ts:83", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/seed-uvu-demo.ts:83"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1a0c84cce301379", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-v8-real-user.ts:72", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-v8-real-user.ts:72"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-223572530a64a080", "name": "Commented-code block (6 lines) in src/app/api/match-incremental/route.ts:37", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/match-incremental/route.ts:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f37327e5d420176", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/match-incremental/route.ts:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/match-incremental/route.ts:28"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5c0aaaf1df28dc5d", "name": "Commented-code block (11 lines) in src/app/api/derive-attendance/route.ts:645", "shortDescription": {"text": "Commented-code block (11 lines) in src/app/api/derive-attendance/route.ts:645"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5fe29b86e603a5a7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/refresh-matches/route.ts:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/refresh-matches/route.ts:30"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-55ef5195fdcb597e", "name": "Commented-code block (7 lines) in src/app/api/cron-send-event-recaps/route.ts:40", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/cron-send-event-recaps/route.ts:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0873458367fc9800", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/questions/next/route.ts:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/questions/next/route.ts:56"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-199bef139b58f086", "name": "Commented-code block (5 lines) in src/app/api/send-sms/route.ts:62", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/send-sms/route.ts:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-714b3551768bb4c8", "name": "Commented-code block (5 lines) in src/app/api/smart-refresh-matches/route.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/smart-refresh-matches/route.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-80642c53be7cfc8f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/admin-start-matching/route.ts:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/admin-start-matching/route.ts:36"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8af2c37137e70ad0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/dev/test-email/route.ts:581", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/dev/test-email/route.ts:581"}, "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-8e346819f8d32c7c", "name": "Commented-code block (5 lines) in src/app/api/cron-refresh-matches/route.ts:50", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/cron-refresh-matches/route.ts:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0fa922bb05cb386e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/auto-match-new-user/route.ts:35", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/auto-match-new-user/route.ts:35"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b6fc5ab0e02bbb55", "name": "Commented-code block (6 lines) in src/app/api/match-worker/route.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/match-worker/route.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6ac1b68bfd7fdf22", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/event/[eventId]/page.tsx:650", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/event/[eventId]/page.tsx:650"}, "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-3ea814d520843fb2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/survey/test/recap/page.tsx:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/survey/test/recap/page.tsx:38"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4cfae1d37738f32e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/survey/test/info/page.tsx:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/survey/test/info/page.tsx:38"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e8750e659fc15434", "name": "Commented-code block (5 lines) in src/app/auth/callback/route.ts:132", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/auth/callback/route.ts:132"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-183af0ce11023b67", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/organizer/event/[eventId]/page.tsx:122", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/organizer/event/[eventId]/page.tsx:122"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4014cce0e8e39c86", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/sponsor/event/[eventId]/page.tsx:179", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/sponsor/event/[eventId]/page.tsx:179"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-74ac55ed96ae9e25", "name": "Commented-code block (5 lines) in src/components/profile/user-profile.tsx:457", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/profile/user-profile.tsx:457"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e753668e2fea0050", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/home/home-page.tsx:738", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/home/home-page.tsx:738"}, "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-e07dd58e493b10d5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/settings/settings-page.tsx:1388", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/settings/settings-page.tsx:1388"}, "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-cee4a6155121dc22", "name": "Legacy-named symbol `effectiveInviteLegacy` in src/components/onboarding/new-onboarding-flow.tsx:150", "shortDescription": {"text": "Legacy-named symbol `effectiveInviteLegacy` in src/components/onboarding/new-onboarding-flow.tsx:150"}, "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-d62ecb61a67b094a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/onboarding/new-onboarding-flow.tsx:833", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/onboarding/new-onboarding-flow.tsx:833"}, "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-f76fe21b379a8852", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/onboarding/event-branching-onboarding.tsx:536", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/onboarding/event-branching-onboarding.tsx:536"}, "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-ac422826d147e059", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/organizer/organizer-event-analytics-dashboard.tsx:455", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/organizer/organizer-event-analytics-dashboard.tsx:455"}, "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-0a1d164010197f12", "name": "Commented-code block (5 lines) in src/components/ui/image-crop-modal.tsx:28", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/ui/image-crop-modal.tsx:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c0fdf56975c0285", "name": "Legacy-named symbol `intro_pending_event_invite_v2` in src/lib/pending-event-invite.ts:4", "shortDescription": {"text": "Legacy-named symbol `intro_pending_event_invite_v2` in src/lib/pending-event-invite.ts:4"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-895fe7f128ec7de6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/qr-service.ts:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/qr-service.ts:43"}, "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-8d168b5c6e543717", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/sms-service.ts:81", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/sms-service.ts:81"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-341a7993bba85324", "name": "Commented-code block (8 lines) in src/lib/supabase.ts:21", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/supabase.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1dcc645ee69ba0e8", "name": "Legacy-named symbol `event_goal_branching_v1` in src/lib/onboarding/flows.ts:61", "shortDescription": {"text": "Legacy-named symbol `event_goal_branching_v1` in src/lib/onboarding/flows.ts:61"}, "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-f54cefabe3034b4d", "name": "Commented-code block (9 lines) in src/lib/onboarding/engine.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/onboarding/engine.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab8efbd42335c8d2", "name": "Commented-code block (5 lines) in src/lib/onboarding/state.ts:224", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/onboarding/state.ts:224"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e84f00815f0b3872", "name": "Commented-code block (7 lines) in src/lib/onboarding/enrichment.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/onboarding/enrichment.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ecf7e387192d2a57", "name": "Commented-code block (10 lines) in src/lib/ai/guard.ts:5", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/ai/guard.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a196c6192b279633", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/fetch-company-metadata/index.ts:229", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/fetch-company-metadata/index.ts:229"}, "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-607dc3d1726e243f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/update-industry-tags/index.ts:146", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/update-industry-tags/index.ts: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-115144cc4fa5cc19", "name": "Legacy-named symbol `needs_offers_rules_v1` in supabase/functions/matchmaker/index.ts:1964", "shortDescription": {"text": "Legacy-named symbol `needs_offers_rules_v1` in supabase/functions/matchmaker/index.ts:1964"}, "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-05e19aec971124cc", "name": "Commented-code block (5 lines) in supabase/functions/matchmaker/index.ts:174", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/matchmaker/index.ts:174"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60183221d0801d36", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/matchmaker/index.ts:188", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/matchmaker/index.ts:188"}, "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}}]}}, "automationDetails": {"id": "repobility/24709"}, "properties": {"repository": "brantsjohnson/intro-mvp", "repoUrl": "https://github.com/brantsjohnson/intro-mvp", "branch": "main"}, "results": [{"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-0c0e0b587f9397c2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/force-rematch-event.ts:43"}, "properties": {"repobilityId": "0da015e8536b6564", "scanner": "scanner-primary", "fingerprint": "0c0e0b587f9397c2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b57c57b4f825b847", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/debug-fetch-match.ts:47"}, "properties": {"repobilityId": "8c10b1feac6afd65", "scanner": "scanner-primary", "fingerprint": "b57c57b4f825b847", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5f4b50168323120c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-match-breakdown.ts:37"}, "properties": {"repobilityId": "b2ca3f7e74095d5b", "scanner": "scanner-primary", "fingerprint": "5f4b50168323120c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-39d5c69dec847ff0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-users.ts:41"}, "properties": {"repobilityId": "9d95dff2693e9eed", "scanner": "scanner-primary", "fingerprint": "39d5c69dec847ff0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-69a5bc913602fefb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-industry-tags.ts:31"}, "properties": {"repobilityId": "66ea27c60a1fb66d", "scanner": "scanner-primary", "fingerprint": "69a5bc913602fefb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ddfaf13f094ac468", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/rematch-event.ts:34"}, "properties": {"repobilityId": "8634e3b7aea82d14", "scanner": "scanner-primary", "fingerprint": "ddfaf13f094ac468", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-953931a3a84c2b6e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/record-fn-deploy.ts:44"}, "properties": {"repobilityId": "02877f2914b1bddd", "scanner": "scanner-primary", "fingerprint": "953931a3a84c2b6e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2c109045043533b3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-matching-e2e.ts:720"}, "properties": {"repobilityId": "8b05f8516026d69d", "scanner": "scanner-primary", "fingerprint": "2c109045043533b3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f99992a5cc08bd65", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-platform-admins.ts:67"}, "properties": {"repobilityId": "a3f780e60ce51f19", "scanner": "scanner-primary", "fingerprint": "f99992a5cc08bd65", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-afaeb21cfb5035a9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/list-events.ts:31"}, "properties": {"repobilityId": "bd25f4cb86cb6f77", "scanner": "scanner-primary", "fingerprint": "afaeb21cfb5035a9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bef84fae7ec881fc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-event-time.ts:37"}, "properties": {"repobilityId": "025301b97cca3313", "scanner": "scanner-primary", "fingerprint": "bef84fae7ec881fc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6e938cced5212c02", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-generate-explanations.ts:29"}, "properties": {"repobilityId": "29ca4a9c59299988", "scanner": "scanner-primary", "fingerprint": "6e938cced5212c02", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4a1c4212d2765fc0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-company-metadata.ts:45"}, "properties": {"repobilityId": "aa1f0d4edd4ed329", "scanner": "scanner-primary", "fingerprint": "4a1c4212d2765fc0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7a08e10c1af0c2b0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/inspect-test-event.ts:43"}, "properties": {"repobilityId": "45c77ff94309f681", "scanner": "scanner-primary", "fingerprint": "7a08e10c1af0c2b0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3ff8d2a66257a882", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/trigger-matching.ts:56"}, "properties": {"repobilityId": "4e759c1c75885b1b", "scanner": "scanner-primary", "fingerprint": "3ff8d2a66257a882", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ba8eaa85fed79fbe", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/delete-all-system-matches.ts:55"}, "properties": {"repobilityId": "2cc531d25ece207b", "scanner": "scanner-primary", "fingerprint": "ba8eaa85fed79fbe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ee965fbc95e9d47e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-columns.ts:14"}, "properties": {"repobilityId": "da2be05639e76d11", "scanner": "scanner-primary", "fingerprint": "ee965fbc95e9d47e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8085c2d68c434798", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/create-e2e-test-user.ts:33"}, "properties": {"repobilityId": "3ecd04a895b53428", "scanner": "scanner-primary", "fingerprint": "8085c2d68c434798", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c4fb5af7e075f15c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/live-check-offer-enrich.ts:43"}, "properties": {"repobilityId": "c00e38b591cb31e6", "scanner": "scanner-primary", "fingerprint": "c4fb5af7e075f15c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5f10af2369f1c91b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/trigger-all-matches.ts:21"}, "properties": {"repobilityId": "a5b075cda9a9a7da", "scanner": "scanner-primary", "fingerprint": "5f10af2369f1c91b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f0a3d90d687ec6c5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-matchmaker-user.ts:25"}, "properties": {"repobilityId": "59ce8ab780f2c96c", "scanner": "scanner-primary", "fingerprint": "f0a3d90d687ec6c5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f3bc15c7d386cbb2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lookup-test-users.ts:25"}, "properties": {"repobilityId": "dd6cab45cdbdd326", "scanner": "scanner-primary", "fingerprint": "f3bc15c7d386cbb2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fcea0d7902c1e5f8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-survey-flow.ts:33"}, "properties": {"repobilityId": "812494d45fe177a7", "scanner": "scanner-primary", "fingerprint": "fcea0d7902c1e5f8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2b6a82bb54945206", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/wipe-event-test-data.ts:38"}, "properties": {"repobilityId": "e1d5c09fea1284a3", "scanner": "scanner-primary", "fingerprint": "2b6a82bb54945206", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bc093e757019010c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-matchmaker-direct.ts:21"}, "properties": {"repobilityId": "cefbe2b299831e8a", "scanner": "scanner-primary", "fingerprint": "bc093e757019010c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f75b3b89d4fc8867", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-industry-tags-migration.ts:33"}, "properties": {"repobilityId": "b6184573aba03da5", "scanner": "scanner-primary", "fingerprint": "f75b3b89d4fc8867", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bf85440e8ea9e976", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-offer-enrichment.ts:22"}, "properties": {"repobilityId": "b35b1a0d2d813ab8", "scanner": "scanner-primary", "fingerprint": "bf85440e8ea9e976", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4cc1ae85a79ed5d2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/create-test-event.ts:31"}, "properties": {"repobilityId": "3f2514a73c13d52f", "scanner": "scanner-primary", "fingerprint": "4cc1ae85a79ed5d2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8d79b7cbd0641277", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/qa-inspect-matches.ts:32"}, "properties": {"repobilityId": "8799dc4c2e559440", "scanner": "scanner-primary", "fingerprint": "8d79b7cbd0641277", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ef6f30f24dcb3559", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/rerun-derive.js:30"}, "properties": {"repobilityId": "2391521634f5630c", "scanner": "scanner-primary", "fingerprint": "ef6f30f24dcb3559", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ff655c433b2f7811", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-matches.ts:33"}, "properties": {"repobilityId": "b001093989875169", "scanner": "scanner-primary", "fingerprint": "ff655c433b2f7811", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b40e33cc4148b8ea", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-uvu-demo.ts:150"}, "properties": {"repobilityId": "569f719aeb059fad", "scanner": "scanner-primary", "fingerprint": "b40e33cc4148b8ea", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bf874498f69f358a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-v8-real-user.ts:68"}, "properties": {"repobilityId": "d11e1f5879962196", "scanner": "scanner-primary", "fingerprint": "bf874498f69f358a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-df3870165e0d660e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-explanations.ts:35"}, "properties": {"repobilityId": "5b2c279a8707fe98", "scanner": "scanner-primary", "fingerprint": "df3870165e0d660e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-56ab348062e18a1f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-demo-event.ts:327"}, "properties": {"repobilityId": "e8679e538d9f4683", "scanner": "scanner-primary", "fingerprint": "56ab348062e18a1f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cc4f3e301a787b5a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup-test-attendees.ts:38"}, "properties": {"repobilityId": "d5697735fb1c48e5", "scanner": "scanner-primary", "fingerprint": "cc4f3e301a787b5a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8ecbf7153de2b3c1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backfill-industry-tags-ai.ts:28"}, "properties": {"repobilityId": "64725e5d3ef3985b", "scanner": "scanner-primary", "fingerprint": "8ecbf7153de2b3c1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f8e0b41cdb66f0a3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-event-name.ts:42"}, "properties": {"repobilityId": "0c41a1ec25938502", "scanner": "scanner-primary", "fingerprint": "f8e0b41cdb66f0a3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dba9af12a55b883f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-email.ts:54"}, "properties": {"repobilityId": "57f60c9edc75d0a6", "scanner": "scanner-primary", "fingerprint": "dba9af12a55b883f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5bb40331ffd9cb52", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/deploy-all.ts:33"}, "properties": {"repobilityId": "9aff601ff1b7a42a", "scanner": "scanner-primary", "fingerprint": "5bb40331ffd9cb52", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3dc6fa5db4f3d35c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-matchmaker.ts:39"}, "properties": {"repobilityId": "3687588aa910dd70", "scanner": "scanner-primary", "fingerprint": "3dc6fa5db4f3d35c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7df43c31dc9549a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-update-industry-tags.ts:23"}, "properties": {"repobilityId": "67b01d1d14c41026", "scanner": "scanner-primary", "fingerprint": "7df43c31dc9549a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c62ffde89f223b15", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/derive-attendance/route.ts:456"}, "properties": {"repobilityId": "5fb779ecd8de3a7a", "scanner": "scanner-primary", "fingerprint": "c62ffde89f223b15", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8bca921592d9a962", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/admin-send-networking-cards/route.ts:51"}, "properties": {"repobilityId": "b7f8e5eb4b8abf0f", "scanner": "scanner-primary", "fingerprint": "8bca921592d9a962", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-736c5fa01a8ccc2e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/smart-refresh-matches/route.ts:99"}, "properties": {"repobilityId": "c3b90b5c6beaaf54", "scanner": "scanner-primary", "fingerprint": "736c5fa01a8ccc2e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aeafbeb6eaf54862", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/survey/test/route.ts:124"}, "properties": {"repobilityId": "f1bd5a249313ca3b", "scanner": "scanner-primary", "fingerprint": "aeafbeb6eaf54862", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-776098118886bfe0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/survey/[token]/route.ts:125"}, "properties": {"repobilityId": "27e0d27146a6128e", "scanner": "scanner-primary", "fingerprint": "776098118886bfe0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-041654f8869adc40", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/dev/test-email/route.ts:134"}, "properties": {"repobilityId": "b618b1d842e96483", "scanner": "scanner-primary", "fingerprint": "041654f8869adc40", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41074ef7cee4bbef", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/api/messages/send/route.ts:1"}, "properties": {"repobilityId": "d88a8fd8a568e9b3", "scanner": "scanner-primary", "fingerprint": "41074ef7cee4bbef", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-9542bacc277f233c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/networking-card/test/route.ts:21"}, "properties": {"repobilityId": "b555b2b830977004", "scanner": "scanner-primary", "fingerprint": "9542bacc277f233c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bcc867f202550e5b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/cron-refresh-matches/route.ts:70"}, "properties": {"repobilityId": "e33c5d3a3e877344", "scanner": "scanner-primary", "fingerprint": "bcc867f202550e5b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-82563fa18e5297f3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/send-networking-card/route.ts:42"}, "properties": {"repobilityId": "c2572bb958158667", "scanner": "scanner-primary", "fingerprint": "82563fa18e5297f3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d702836fa4c5cba1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/suggest-linkedin/route.ts:42"}, "properties": {"repobilityId": "6e7f456e6a6d58f5", "scanner": "scanner-primary", "fingerprint": "d702836fa4c5cba1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1dea50eec4c243e5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/connect-qr/route.ts:111"}, "properties": {"repobilityId": "287793c94204bea0", "scanner": "scanner-primary", "fingerprint": "1dea50eec4c243e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-27c95295103f314b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/match-worker/route.ts:97"}, "properties": {"repobilityId": "136823021232642f", "scanner": "scanner-primary", "fingerprint": "27c95295103f314b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f27aa95063835905", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/admin/event/[eventId]/page.tsx:184"}, "properties": {"repobilityId": "0b2f501660d20a85", "scanner": "scanner-primary", "fingerprint": "f27aa95063835905", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-988fcec070260ec0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/survey/test/page.tsx:66"}, "properties": {"repobilityId": "b64d04f4de5aa3e6", "scanner": "scanner-primary", "fingerprint": "988fcec070260ec0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9cf53e20cb2abac3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/survey/test/info/page.tsx:48"}, "properties": {"repobilityId": "ce9d8a679ea77181", "scanner": "scanner-primary", "fingerprint": "9cf53e20cb2abac3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d6695e85054a675f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/auth/callback/route.ts:32"}, "properties": {"repobilityId": "b64c2286c00bdf94", "scanner": "scanner-primary", "fingerprint": "d6695e85054a675f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e349fdd538d3cfa0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/organizer-demo/layout.tsx:24"}, "properties": {"repobilityId": "b47adc52c553a7ba", "scanner": "scanner-primary", "fingerprint": "e349fdd538d3cfa0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d000b791edb1a443", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/organizer/layout.tsx:37"}, "properties": {"repobilityId": "c69b70e1d3398bf3", "scanner": "scanner-primary", "fingerprint": "d000b791edb1a443", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-22cf743459b3f315", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/sponsor/event/[eventId]/page.tsx:726"}, "properties": {"repobilityId": "a75a2271547ef5b3", "scanner": "scanner-primary", "fingerprint": "22cf743459b3f315", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-01ca485f192eff0c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/demo/demo-switcher.tsx:144"}, "properties": {"repobilityId": "ab01d82a074abe74", "scanner": "scanner-primary", "fingerprint": "01ca485f192eff0c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e0f7eb73963315bd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/business-card.tsx:150"}, "properties": {"repobilityId": "2e7e10d8ac60c34f", "scanner": "scanner-primary", "fingerprint": "e0f7eb73963315bd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a29516c09953d2fd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/profile/user-profile.tsx:651"}, "properties": {"repobilityId": "e3cd3f273813e896", "scanner": "scanner-primary", "fingerprint": "a29516c09953d2fd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-85a5a9c470978b40", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/home-page.tsx:2564"}, "properties": {"repobilityId": "53e82d434d8922c1", "scanner": "scanner-primary", "fingerprint": "85a5a9c470978b40", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6811924fee4bd143", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/home/home-page.tsx:366"}, "properties": {"repobilityId": "5fb948cd25a97db2", "scanner": "scanner-primary", "fingerprint": "6811924fee4bd143", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7a3eba48351eee59", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/home/sms-notification-widget.tsx:102"}, "properties": {"repobilityId": "56390557591d670a", "scanner": "scanner-primary", "fingerprint": "7a3eba48351eee59", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-11cc42e7da0afc19", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/meet-search.tsx:165"}, "properties": {"repobilityId": "07ac5e60ea45c897", "scanner": "scanner-primary", "fingerprint": "11cc42e7da0afc19", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9c6bae6848109529", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/auth/auth-form.tsx:96"}, "properties": {"repobilityId": "bcdd14c73bac33e9", "scanner": "scanner-primary", "fingerprint": "9c6bae6848109529", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c7af755d64d928cf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/messages/messages-page.tsx:524"}, "properties": {"repobilityId": "57c47b97e90b9ab5", "scanner": "scanner-primary", "fingerprint": "c7af755d64d928cf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-be897994eb36f229", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/components/messages/conversation-view.tsx:786"}, "properties": {"repobilityId": "c828ee2c0222252b", "scanner": "scanner-primary", "fingerprint": "be897994eb36f229", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4dd7f8e7b77637cf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/messages/conversation-view.tsx:643"}, "properties": {"repobilityId": "664191fa4453c432", "scanner": "scanner-primary", "fingerprint": "4dd7f8e7b77637cf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-828c2ce386f8da92", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/settings/settings-page.tsx:1558"}, "properties": {"repobilityId": "3e5ca6ab36a3edd4", "scanner": "scanner-primary", "fingerprint": "828c2ce386f8da92", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1015416fbbd9cbe2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/settings/settings-page.tsx:1348"}, "properties": {"repobilityId": "3a0cbf29005c717f", "scanner": "scanner-primary", "fingerprint": "1015416fbbd9cbe2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3dc6224ead7c1d49", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/components/onboarding/new-onboarding-flow.tsx:1971"}, "properties": {"repobilityId": "959ad2b4fdcaa46a", "scanner": "scanner-primary", "fingerprint": "3dc6224ead7c1d49", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c3167bf355559899", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/onboarding/new-onboarding-flow.tsx:831"}, "properties": {"repobilityId": "011ae11468b7d4d0", "scanner": "scanner-primary", "fingerprint": "c3167bf355559899", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2362ff11d8c07dd7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/organizer/organizer-event-analytics-dashboard.tsx:212"}, "properties": {"repobilityId": "ee4b2000f6354ded", "scanner": "scanner-primary", "fingerprint": "2362ff11d8c07dd7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a27132186b964156", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/organizer/analytics-slide-over.tsx:66"}, "properties": {"repobilityId": "2ed3d418efd78cf2", "scanner": "scanner-primary", "fingerprint": "a27132186b964156", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9142b1d1e43948ef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/ui/qr-scanner.tsx:156"}, "properties": {"repobilityId": "17c3e4265ab17f0d", "scanner": "scanner-primary", "fingerprint": "9142b1d1e43948ef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6f5028ccc3a6eab7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/ui/event-join-scanner.tsx:53"}, "properties": {"repobilityId": "3cd6a2a5b8e213a4", "scanner": "scanner-primary", "fingerprint": "6f5028ccc3a6eab7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-817f9aa757e6b7b3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/ui/presence-avatar.tsx:71"}, "properties": {"repobilityId": "2a616104e5dac52f", "scanner": "scanner-primary", "fingerprint": "817f9aa757e6b7b3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-40b783cd413483f4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/ui/directory-search.tsx:81"}, "properties": {"repobilityId": "d82186fbd35964b0", "scanner": "scanner-primary", "fingerprint": "40b783cd413483f4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-00a28fbffd44b866", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/ui/match-card.tsx:99"}, "properties": {"repobilityId": "dabe223d112cecdf", "scanner": "scanner-primary", "fingerprint": "00a28fbffd44b866", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c9f3348eb022fe42", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/qr-service.ts:39"}, "properties": {"repobilityId": "db76dddefa3dba22", "scanner": "scanner-primary", "fingerprint": "c9f3348eb022fe42", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-421955b50c2587a5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/qr-service.ts:107"}, "properties": {"repobilityId": "1eed590bda89900f", "scanner": "scanner-primary", "fingerprint": "421955b50c2587a5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f28f2939ac0b3a7f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/profile/linkedin-finder.ts:168"}, "properties": {"repobilityId": "a158dd72d4decb9f", "scanner": "scanner-primary", "fingerprint": "f28f2939ac0b3a7f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-55d1515147511dcc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/my-function/index.ts:8"}, "properties": {"repobilityId": "17df4a05e8d8b2e3", "scanner": "scanner-primary", "fingerprint": "55d1515147511dcc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4dbe96d7f0019aa3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/question-engine/index.ts:335"}, "properties": {"repobilityId": "cd7fc7ca9210c845", "scanner": "scanner-primary", "fingerprint": "4dbe96d7f0019aa3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f4096ee180a64ba6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/company-enrich/index.ts:324"}, "properties": {"repobilityId": "1985d3d4beaf57d3", "scanner": "scanner-primary", "fingerprint": "f4096ee180a64ba6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-63f90cbf6211f02e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/fetch-company-metadata/index.ts:544"}, "properties": {"repobilityId": "1615d6643aecda85", "scanner": "scanner-primary", "fingerprint": "63f90cbf6211f02e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-683e1b9ca13865f8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/generate-match-explanations/index.ts:119"}, "properties": {"repobilityId": "012c43532f9bc880", "scanner": "scanner-primary", "fingerprint": "683e1b9ca13865f8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2f7761b2480924d0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/update-industry-tags/index.ts:232"}, "properties": {"repobilityId": "455aad6443a45358", "scanner": "scanner-primary", "fingerprint": "2f7761b2480924d0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-952803e27c4fb788", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 e2e/stress/event-join.spec.ts:18"}, "properties": {"repobilityId": "ba48c43f8b9c3c5b", "scanner": "scanner-primary", "fingerprint": "952803e27c4fb788", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-907ed3c040f039c7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 e2e/stress/navigation-abuse.spec.ts:21"}, "properties": {"repobilityId": "03417db2653ca78d", "scanner": "scanner-primary", "fingerprint": "907ed3c040f039c7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3eb89679d385ae34", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 e2e/stress/onboarding-driver.ts:64"}, "properties": {"repobilityId": "75a043d6099a63bb", "scanner": "scanner-primary", "fingerprint": "3eb89679d385ae34", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-330347246ed26812", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 e2e/stress/onboarding.spec.ts:44"}, "properties": {"repobilityId": "6231dfd22c9d2398", "scanner": "scanner-primary", "fingerprint": "330347246ed26812", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-937f687205380bd3", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 e2e/stress/accounts.setup.spec.ts:82"}, "properties": {"repobilityId": "7ec834271e021e45", "scanner": "scanner-primary", "fingerprint": "937f687205380bd3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-60d937209afbccab", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 e2e/stress/accounts.setup.spec.ts:73"}, "properties": {"repobilityId": "af71b91e8fc941a3", "scanner": "scanner-primary", "fingerprint": "60d937209afbccab", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e30ccd47c73f2052", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 e2e/stress/input-abuse.spec.ts:41"}, "properties": {"repobilityId": "dff13102cd62cbc1", "scanner": "scanner-primary", "fingerprint": "e30ccd47c73f2052", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4a4a4d3656844e3f", "level": "warning", "message": {"text": "Privileged port 1000 in use"}, "properties": {"repobilityId": "5ac9fc9372cfe169", "scanner": "scanner-primary", "fingerprint": "4a4a4d3656844e3f", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/wt.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ab16bf6bcdb69ad3", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/record-fn-deploy.ts:18"}, "properties": {"repobilityId": "d1c32c6beea79d68", "scanner": "scanner-primary", "fingerprint": "ab16bf6bcdb69ad3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/record-fn-deploy.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-6007cce080b98a30", "level": "error", "message": {"text": "Possible secret in scripts/create-e2e-test-user.ts"}, "properties": {"repobilityId": "db171733426d7d6d", "scanner": "scanner-primary", "fingerprint": "6007cce080b98a30", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/create-e2e-test-user.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-695e279acaffea40", "level": "error", "message": {"text": "Possible secret in scripts/seed-uvu-demo.ts"}, "properties": {"repobilityId": "3f7424977c096018", "scanner": "scanner-primary", "fingerprint": "695e279acaffea40", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/seed-uvu-demo.ts"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-c2d4d4ceca85c176", "level": "error", "message": {"text": "Possible secret in scripts/seed-demo-event.ts"}, "properties": {"repobilityId": "d1e5d799f1b278fc", "scanner": "scanner-primary", "fingerprint": "c2d4d4ceca85c176", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/seed-demo-event.ts"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-b209372ab374b516", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/deploy-all.ts:6"}, "properties": {"repobilityId": "28e0c8e151ee0537", "scanner": "scanner-primary", "fingerprint": "b209372ab374b516", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/deploy-all.ts"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-9e81924273d1366d", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/question-engine/index.ts:11"}, "properties": {"repobilityId": "37de15a7e40ecb6f", "scanner": "scanner-primary", "fingerprint": "9e81924273d1366d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/question-engine/index.ts"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-06ad807a7a5abdde", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/company-enrich/index.ts:7"}, "properties": {"repobilityId": "2a77224ddba75c8e", "scanner": "scanner-primary", "fingerprint": "06ad807a7a5abdde", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/company-enrich/index.ts"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-79491d87eb01b4fd", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/generate-match-explanations/index.ts:114"}, "properties": {"repobilityId": "b7d520fb62da15d5", "scanner": "scanner-primary", "fingerprint": "79491d87eb01b4fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/generate-match-explanations/index.ts"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-fae6a9289f56b4f7", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/matchmaker/index.ts:309"}, "properties": {"repobilityId": "284aef2b0b87651a", "scanner": "scanner-primary", "fingerprint": "fae6a9289f56b4f7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/matchmaker/index.ts"}, "region": {"startLine": 309}}}]}, {"ruleId": "scanner-1ea1c4b861cc8cb1", "level": "error", "message": {"text": "Possible secret in e2e/helpers.ts"}, "properties": {"repobilityId": "e4132fb39d77c656", "scanner": "scanner-primary", "fingerprint": "1ea1c4b861cc8cb1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/helpers.ts"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-1ea1c4b861cc8cb1", "level": "error", "message": {"text": "Possible secret in e2e/helpers.ts"}, "properties": {"repobilityId": "e4132fb39d77c656", "scanner": "scanner-primary", "fingerprint": "1ea1c4b861cc8cb1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/helpers.ts"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-1ea1c4b861cc8cb1", "level": "error", "message": {"text": "Possible secret in e2e/helpers.ts"}, "properties": {"repobilityId": "e4132fb39d77c656", "scanner": "scanner-primary", "fingerprint": "1ea1c4b861cc8cb1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/helpers.ts"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-1ea1c4b861cc8cb1", "level": "error", "message": {"text": "Possible secret in e2e/helpers.ts"}, "properties": {"repobilityId": "e4132fb39d77c656", "scanner": "scanner-primary", "fingerprint": "1ea1c4b861cc8cb1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/helpers.ts"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-1ea1c4b861cc8cb1", "level": "error", "message": {"text": "Possible secret in e2e/helpers.ts"}, "properties": {"repobilityId": "e4132fb39d77c656", "scanner": "scanner-primary", "fingerprint": "1ea1c4b861cc8cb1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/helpers.ts"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-1ea1c4b861cc8cb1", "level": "error", "message": {"text": "Possible secret in e2e/helpers.ts"}, "properties": {"repobilityId": "e4132fb39d77c656", "scanner": "scanner-primary", "fingerprint": "1ea1c4b861cc8cb1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/helpers.ts"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-1ea1c4b861cc8cb1", "level": "error", "message": {"text": "Possible secret in e2e/helpers.ts"}, "properties": {"repobilityId": "e4132fb39d77c656", "scanner": "scanner-primary", "fingerprint": "1ea1c4b861cc8cb1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/helpers.ts"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-ddf78c73fd92b912", "level": "note", "message": {"text": "Very large file: src/app/admin/event/[eventId]/page.tsx (1373 lines)"}, "properties": {"repobilityId": "d59cac7bfc3303ff", "scanner": "scanner-primary", "fingerprint": "ddf78c73fd92b912", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-70483d4671000163", "level": "note", "message": {"text": "Very large file: src/components/profile/user-profile.tsx (1927 lines)"}, "properties": {"repobilityId": "b789f056bb828397", "scanner": "scanner-primary", "fingerprint": "70483d4671000163", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-67242e1ffd3877d6", "level": "note", "message": {"text": "Very large file: src/components/home/home-page.tsx (2887 lines)"}, "properties": {"repobilityId": "54865a7a8989c6d3", "scanner": "scanner-primary", "fingerprint": "67242e1ffd3877d6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0218dadaa83ece87", "level": "note", "message": {"text": "Very large file: src/components/settings/settings-page.tsx (2654 lines)"}, "properties": {"repobilityId": "c61bf8946b277499", "scanner": "scanner-primary", "fingerprint": "0218dadaa83ece87", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ddc8ae7610614742", "level": "note", "message": {"text": "Very large file: src/components/onboarding/new-onboarding-flow.tsx (2638 lines)"}, "properties": {"repobilityId": "1d46010b08ccf93a", "scanner": "scanner-primary", "fingerprint": "ddc8ae7610614742", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dec47202c089c88e", "level": "note", "message": {"text": "Very large file: src/components/onboarding/event-branching-onboarding.tsx (1452 lines)"}, "properties": {"repobilityId": "3756c07d65314fd1", "scanner": "scanner-primary", "fingerprint": "dec47202c089c88e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f2773b77f72d7c92", "level": "note", "message": {"text": "Very large file: src/lib/onboarding/engine.ts (1406 lines)"}, "properties": {"repobilityId": "e206dd450ac51e23", "scanner": "scanner-primary", "fingerprint": "f2773b77f72d7c92", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-497f5ab95c53710f", "level": "note", "message": {"text": "Very large file: supabase/functions/matchmaker/index.ts (2268 lines)"}, "properties": {"repobilityId": "77b199304c50fa62", "scanner": "scanner-primary", "fingerprint": "497f5ab95c53710f", "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-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "ca41ae55ce9628c8", "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": "77ec9801446bdc58", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "a19c50f14bcb2e30", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "39bdfbf05109c7af", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-7691e921d67197b3", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .cursor/plans/unified-demo-mode.md"}, "properties": {"repobilityId": "a3b89919397d59e4", "scanner": "scanner-primary", "fingerprint": "7691e921d67197b3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "cursor_rule"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".cursor/plans/unified-demo-mode.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4639005eec6a791d", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/record-fn-deploy.ts:5"}, "properties": {"repobilityId": "18ff2c6490ebb64b", "scanner": "scanner-primary", "fingerprint": "4639005eec6a791d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db37ef61b22dd8ec", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-generate-explanations.ts:46"}, "properties": {"repobilityId": "0304557a70d49b2d", "scanner": "scanner-primary", "fingerprint": "db37ef61b22dd8ec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-45e82bbf2c05c27e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/trigger-matching.ts:66"}, "properties": {"repobilityId": "0d7046e22039093f", "scanner": "scanner-primary", "fingerprint": "45e82bbf2c05c27e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4fc853868bae251a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/live-check-offer-enrich.ts:111"}, "properties": {"repobilityId": "5f4f9b8c513d8938", "scanner": "scanner-primary", "fingerprint": "4fc853868bae251a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b1964f1304477188", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-matchmaker-user.ts:52"}, "properties": {"repobilityId": "12419b7dd40a588a", "scanner": "scanner-primary", "fingerprint": "b1964f1304477188", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-95f5508ddfecd766", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-survey-flow.ts:39"}, "properties": {"repobilityId": "54b97294f4b11c76", "scanner": "scanner-primary", "fingerprint": "95f5508ddfecd766", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-155e35f1de549fbf", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/apply-industry-tags-migration.ts:60"}, "properties": {"repobilityId": "93c89b61bc0d3887", "scanner": "scanner-primary", "fingerprint": "155e35f1de549fbf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-08dc7a896f78cadb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/rerun-derive.js:15"}, "properties": {"repobilityId": "1ef15a65d2d944b0", "scanner": "scanner-primary", "fingerprint": "08dc7a896f78cadb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-17105520ae1d5581", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/seed-uvu-demo.ts:83"}, "properties": {"repobilityId": "7b73a103ed7e4d82", "scanner": "scanner-primary", "fingerprint": "17105520ae1d5581", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1a0c84cce301379", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-v8-real-user.ts:72"}, "properties": {"repobilityId": "d6df006024e835a4", "scanner": "scanner-primary", "fingerprint": "b1a0c84cce301379", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-223572530a64a080", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/match-incremental/route.ts:37"}, "properties": {"repobilityId": "5d340f1e59d1210f", "scanner": "scanner-primary", "fingerprint": "223572530a64a080", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f37327e5d420176", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/match-incremental/route.ts:28"}, "properties": {"repobilityId": "6b153c7f88d791ff", "scanner": "scanner-primary", "fingerprint": "3f37327e5d420176", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5c0aaaf1df28dc5d", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/app/api/derive-attendance/route.ts:645"}, "properties": {"repobilityId": "d5ced7c4bbd02b23", "scanner": "scanner-primary", "fingerprint": "5c0aaaf1df28dc5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fe29b86e603a5a7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/refresh-matches/route.ts:30"}, "properties": {"repobilityId": "e67326361825ea8d", "scanner": "scanner-primary", "fingerprint": "5fe29b86e603a5a7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-55ef5195fdcb597e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/cron-send-event-recaps/route.ts:40"}, "properties": {"repobilityId": "8b73d4a2faa8d527", "scanner": "scanner-primary", "fingerprint": "55ef5195fdcb597e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0873458367fc9800", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/questions/next/route.ts:56"}, "properties": {"repobilityId": "735841bbd042b723", "scanner": "scanner-primary", "fingerprint": "0873458367fc9800", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-199bef139b58f086", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/send-sms/route.ts:62"}, "properties": {"repobilityId": "6722a5ab744c693e", "scanner": "scanner-primary", "fingerprint": "199bef139b58f086", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-714b3551768bb4c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/smart-refresh-matches/route.ts:7"}, "properties": {"repobilityId": "6bb6070745bb4c5b", "scanner": "scanner-primary", "fingerprint": "714b3551768bb4c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80642c53be7cfc8f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/admin-start-matching/route.ts:36"}, "properties": {"repobilityId": "f90a714e7a0cee97", "scanner": "scanner-primary", "fingerprint": "80642c53be7cfc8f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8af2c37137e70ad0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/dev/test-email/route.ts:581"}, "properties": {"repobilityId": "9310fb8c43ece0e6", "scanner": "scanner-primary", "fingerprint": "8af2c37137e70ad0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8e346819f8d32c7c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/cron-refresh-matches/route.ts:50"}, "properties": {"repobilityId": "20c6965d394c093c", "scanner": "scanner-primary", "fingerprint": "8e346819f8d32c7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0fa922bb05cb386e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/auto-match-new-user/route.ts:35"}, "properties": {"repobilityId": "10abd644533abef5", "scanner": "scanner-primary", "fingerprint": "0fa922bb05cb386e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b6fc5ab0e02bbb55", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/match-worker/route.ts:4"}, "properties": {"repobilityId": "b1233b6819d8d1d5", "scanner": "scanner-primary", "fingerprint": "b6fc5ab0e02bbb55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ac1b68bfd7fdf22", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/event/[eventId]/page.tsx:650"}, "properties": {"repobilityId": "9b956ce624dfc33f", "scanner": "scanner-primary", "fingerprint": "6ac1b68bfd7fdf22", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3ea814d520843fb2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/survey/test/recap/page.tsx:38"}, "properties": {"repobilityId": "0fe52f19c7e117df", "scanner": "scanner-primary", "fingerprint": "3ea814d520843fb2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4cfae1d37738f32e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/survey/test/info/page.tsx:38"}, "properties": {"repobilityId": "08248e62d4d5c619", "scanner": "scanner-primary", "fingerprint": "4cfae1d37738f32e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e8750e659fc15434", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/auth/callback/route.ts:132"}, "properties": {"repobilityId": "b8912479de0fa545", "scanner": "scanner-primary", "fingerprint": "e8750e659fc15434", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-183af0ce11023b67", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/organizer/event/[eventId]/page.tsx:122"}, "properties": {"repobilityId": "afdb0013396d6377", "scanner": "scanner-primary", "fingerprint": "183af0ce11023b67", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4014cce0e8e39c86", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/sponsor/event/[eventId]/page.tsx:179"}, "properties": {"repobilityId": "6eb24453b72d67c1", "scanner": "scanner-primary", "fingerprint": "4014cce0e8e39c86", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-74ac55ed96ae9e25", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/profile/user-profile.tsx:457"}, "properties": {"repobilityId": "f72b5e8f95999f79", "scanner": "scanner-primary", "fingerprint": "74ac55ed96ae9e25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e753668e2fea0050", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/home/home-page.tsx:738"}, "properties": {"repobilityId": "a000a376fe5704ee", "scanner": "scanner-primary", "fingerprint": "e753668e2fea0050", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e07dd58e493b10d5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/settings/settings-page.tsx:1388"}, "properties": {"repobilityId": "6ea44320529a917c", "scanner": "scanner-primary", "fingerprint": "e07dd58e493b10d5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cee4a6155121dc22", "level": "note", "message": {"text": "Legacy-named symbol `effectiveInviteLegacy` in src/components/onboarding/new-onboarding-flow.tsx:150"}, "properties": {"repobilityId": "9845902876b845ab", "scanner": "scanner-primary", "fingerprint": "cee4a6155121dc22", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d62ecb61a67b094a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/onboarding/new-onboarding-flow.tsx:833"}, "properties": {"repobilityId": "00e79303ca710f72", "scanner": "scanner-primary", "fingerprint": "d62ecb61a67b094a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f76fe21b379a8852", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/onboarding/event-branching-onboarding.tsx:536"}, "properties": {"repobilityId": "90ea906081a9c2e2", "scanner": "scanner-primary", "fingerprint": "f76fe21b379a8852", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ac422826d147e059", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/organizer/organizer-event-analytics-dashboard.tsx:455"}, "properties": {"repobilityId": "74a29f2dd35f8c46", "scanner": "scanner-primary", "fingerprint": "ac422826d147e059", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0a1d164010197f12", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/ui/image-crop-modal.tsx:28"}, "properties": {"repobilityId": "95b977191cad40d3", "scanner": "scanner-primary", "fingerprint": "0a1d164010197f12", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c0fdf56975c0285", "level": "note", "message": {"text": "Legacy-named symbol `intro_pending_event_invite_v2` in src/lib/pending-event-invite.ts:4"}, "properties": {"repobilityId": "7d5498d0df44459b", "scanner": "scanner-primary", "fingerprint": "0c0fdf56975c0285", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-895fe7f128ec7de6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/qr-service.ts:43"}, "properties": {"repobilityId": "aa6d31e2ba08fac2", "scanner": "scanner-primary", "fingerprint": "895fe7f128ec7de6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8d168b5c6e543717", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/sms-service.ts:81"}, "properties": {"repobilityId": "3b3d6c7aa2828fa1", "scanner": "scanner-primary", "fingerprint": "8d168b5c6e543717", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-341a7993bba85324", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/supabase.ts:21"}, "properties": {"repobilityId": "515bae38ed0924e5", "scanner": "scanner-primary", "fingerprint": "341a7993bba85324", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1dcc645ee69ba0e8", "level": "note", "message": {"text": "Legacy-named symbol `event_goal_branching_v1` in src/lib/onboarding/flows.ts:61"}, "properties": {"repobilityId": "6e5c38e2ee186654", "scanner": "scanner-primary", "fingerprint": "1dcc645ee69ba0e8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f54cefabe3034b4d", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/onboarding/engine.ts:3"}, "properties": {"repobilityId": "826648c4ba5e90fe", "scanner": "scanner-primary", "fingerprint": "f54cefabe3034b4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab8efbd42335c8d2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/onboarding/state.ts:224"}, "properties": {"repobilityId": "282a2afe089afeed", "scanner": "scanner-primary", "fingerprint": "ab8efbd42335c8d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e84f00815f0b3872", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/onboarding/enrichment.ts:4"}, "properties": {"repobilityId": "471bb7c0d3ce6ebb", "scanner": "scanner-primary", "fingerprint": "e84f00815f0b3872", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecf7e387192d2a57", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/ai/guard.ts:5"}, "properties": {"repobilityId": "4d8620b957e9caca", "scanner": "scanner-primary", "fingerprint": "ecf7e387192d2a57", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a196c6192b279633", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/fetch-company-metadata/index.ts:229"}, "properties": {"repobilityId": "88ccad0f6f3d67ec", "scanner": "scanner-primary", "fingerprint": "a196c6192b279633", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-607dc3d1726e243f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/update-industry-tags/index.ts:146"}, "properties": {"repobilityId": "680f90a67cfee020", "scanner": "scanner-primary", "fingerprint": "607dc3d1726e243f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-115144cc4fa5cc19", "level": "note", "message": {"text": "Legacy-named symbol `needs_offers_rules_v1` in supabase/functions/matchmaker/index.ts:1964"}, "properties": {"repobilityId": "9c8c3b9d53ffd747", "scanner": "scanner-primary", "fingerprint": "115144cc4fa5cc19", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-05e19aec971124cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/matchmaker/index.ts:174"}, "properties": {"repobilityId": "03daaefb19d19b0d", "scanner": "scanner-primary", "fingerprint": "05e19aec971124cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60183221d0801d36", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/matchmaker/index.ts:188"}, "properties": {"repobilityId": "eac90c46a13fde8c", "scanner": "scanner-primary", "fingerprint": "60183221d0801d36", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}]}]}