{"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-1a9de0d8504dc495", "name": "Stray `console.log` in TS/JS \u2014 tests/crosswalk.test.ts:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/crosswalk.test.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-da22fcd15efd9caf", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-future-transport.ts:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-future-transport.ts:49"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6bfb95fa9098eec7", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-fire-history.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-fire-history.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-6c675a37290b69fc", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-timeseries.ts:90", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-timeseries.ts:90"}, "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-4bfec74b3035c29c", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-crosswalk.ts:186", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-crosswalk.ts:186"}, "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-15ad06d0db9e124c", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-nuisance.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-nuisance.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-e9e176e09189f6a8", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-hazards.ts:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-hazards.ts:36"}, "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-7d18de98df54b167", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-crime.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-crime.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-5f9458eee918b905", "name": "Stray `console.log` in TS/JS \u2014 scripts/hash-sources.ts:96", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/hash-sources.ts: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-69f4e2c4c23f0a38", "name": "Stray `console.log` in TS/JS \u2014 scripts/score.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/score.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-5f6cd6632ba53d6d", "name": "Stray `console.log` in TS/JS \u2014 scripts/precompute-gtfs.ts:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/precompute-gtfs.ts:86"}, "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-a5b362bb703c4c5c", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-walk-access.ts:89", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-walk-access.ts:89"}, "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-8799137f6cf255ba", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-beach-quality.ts:143", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-beach-quality.ts:143"}, "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-97a24821ba68ccf7", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-abs-approvals.ts:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-abs-approvals.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-8a70f1f516715350", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-noise.ts:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-noise.ts:71"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-81c1e796efec0e40", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-overlays.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-overlays.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-0eba8a2df87ba6e2", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-mmm.ts:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-mmm.ts:63"}, "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-8886c0777d05c5b6", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-traffic-aadt.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-traffic-aadt.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-cb03b7c4713346c3", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-social-housing.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-social-housing.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-6d1541b953b5b88b", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-sources.ts:313", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-sources.ts:313"}, "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-f44687d2416d775c", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-pockets.ts:212", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-pockets.ts:212"}, "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-9c7ec3ad9dec360c", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-abs-approvals.ts:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-abs-approvals.ts:49"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-07a8658d47b9709a", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-building-tiles.ts:115", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-building-tiles.ts:115"}, "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-39f2b8f406673403", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-school-zones.ts:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-school-zones.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-ca1bd4e8558c0802", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-schools.ts:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-schools.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-5d980e63e4f1d43b", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-vic-facilities.ts:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-vic-facilities.ts:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d69ed543f4e1fab4", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-coverage-diff.ts:109", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-coverage-diff.ts:109"}, "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-f95ba470ac6b018b", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-density.ts:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-density.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-e00e61e68634ac6a", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-vif.ts:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-vif.ts:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5b867759a2e44a09", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-community-poi.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-community-poi.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-1bf9aac326d364ba", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch.ts:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch.ts:26"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5e12646fe7c8609c", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-freshness.ts:91", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-freshness.ts:91"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a970fcc9feaab32e", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-schools.ts:81", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-schools.ts:81"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-54aea6d7007beca4", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-activity-centres.ts:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-activity-centres.ts: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-0db8dc99a9ec15e3", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-extra-poi.ts:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-extra-poi.ts:13"}, "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-c4d593abfafd2715", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-aged-care.ts:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-aged-care.ts:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-666329dccb9d4fd6", "name": "Stray `console.log` in TS/JS \u2014 scripts/list-abs-services.ts:7", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/list-abs-services.ts:7"}, "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-41b4320a12530862", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-sea-level.ts:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-sea-level.ts:59"}, "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-3d40d4c0a9ba34bd", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-overlays.ts:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-overlays.ts:65"}, "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-159a902d0c28ebb3", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-train-stations.ts:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-train-stations.ts:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fb2e8f6780798a25", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-seifa-sa1.ts:146", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-seifa-sa1.ts:146"}, "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-498e3b57532bea7f", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-electorate.ts:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-electorate.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-9e931ffc3860514b", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-heritage.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-heritage.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-fab3af1e19ec522a", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-cyclability.ts:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-cyclability.ts:62"}, "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-8692e45068224b07", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-major-projects.ts:88", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-major-projects.ts:88"}, "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-41fe4903853e1b58", "name": "Stray `console.log` in TS/JS \u2014 scripts/preserve-context.ts:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/preserve-context.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-84b58fdc1d262826", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-poi.ts:204", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-poi.ts:204"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a7498ce7e1ab0855", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-fire-history.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-fire-history.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-318eabe5504d8c6b", "name": "Stray `console.log` in TS/JS \u2014 scripts/build.ts:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build.ts:66"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1af5fcc86138fd5b", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-data-audit.ts:81", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-data-audit.ts:81"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-65093b42f9179269", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-vif.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-vif.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-2bc29148062678ac", "name": "Stray `console.log` in TS/JS \u2014 scripts/normalize.ts:180", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/normalize.ts:180"}, "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-7806ef9f500b2f2b", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-civic.ts:106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-civic.ts:106"}, "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-1a828b320ff93e05", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-abs-qualifications.ts:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-abs-qualifications.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-03255b7418c10778", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-ev-poi.ts:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-ev-poi.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-096f3b6b8ddc8c54", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-housing-stress.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-housing-stress.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-35077f6bda6d5dd6", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-heritage.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-heritage.ts:40"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8e92906fb03ba788", "name": "Stray `console.log` in TS/JS \u2014 scripts/bake-report-tiles.ts:322", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bake-report-tiles.ts:322"}, "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-d0beb4078e95af6f", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-sea-level.ts:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-sea-level.ts:27"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8b674f948d753591", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-geo.ts:87", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-geo.ts:87"}, "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-9477a961677f5385", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-epa-air.ts:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-epa-air.ts: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-a44e887c142d3b7e", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-housing-stress.ts:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-housing-stress.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-3b42132ab1e7f2e9", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-indicators.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-indicators.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-69803063c7b92aca", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-vg-prices.ts:317", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-vg-prices.ts:317"}, "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-63bdfc5b12534e00", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-abs-qualifications.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-abs-qualifications.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-e2793ac2d8901692", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-social-housing.ts:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-social-housing.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-5cc363e66661a0a7", "name": "Stray `console.log` in TS/JS \u2014 scripts/lib/nsw-crime.ts:326", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/nsw-crime.ts:326"}, "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-bd1162a8a74c2195", "name": "Stray `console.log` in TS/JS \u2014 scripts/lib/wa-hazards.ts:142", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/wa-hazards.ts:142"}, "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-18d2d22c5b2e9f47", "name": "Stray `console.log` in TS/JS \u2014 scripts/lib/hazard-adapters.ts:127", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/hazard-adapters.ts:127"}, "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-1253fdabc7497459", "name": "Stray `console.log` in TS/JS \u2014 scripts/lib/wa-crime.ts:541", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/wa-crime.ts:541"}, "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-4090528ce2a8dd35", "name": "Stray `console.log` in TS/JS \u2014 scripts/lib/sa-hazards.ts:287", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/sa-hazards.ts:287"}, "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-83443fe9b2ff949f", "name": "Stray `console.log` in TS/JS \u2014 scripts/lib/crime-adapters.ts:138", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/crime-adapters.ts:138"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a15511fc62010dde", "name": "Stray `console.log` in TS/JS \u2014 scripts/lib/nsw-hazards.ts:112", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/nsw-hazards.ts:112"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-328efdfa1d1428b9", "name": "Stray `console.log` in TS/JS \u2014 scripts/lib/nsw-beachwatch.ts:258", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/nsw-beachwatch.ts:258"}, "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-c465edc5808dd4f4", "name": "Stray `console.log` in TS/JS \u2014 scripts/lib/qspatial-bpa.ts:487", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/qspatial-bpa.ts:487"}, "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-df041671147f5cfc", "name": "Stray `console.log` in TS/JS \u2014 scripts/lib/sa-crime.ts:334", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/sa-crime.ts:334"}, "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-5991a4b2a1202b48", "name": "`truncate` class without `title=` for hover reveal \u2014 components/ShortlistPanel.tsx:102", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ShortlistPanel.tsx:102"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b9e8cf3ca465c5d", "name": "`truncate` class without `title=` for hover reveal \u2014 components/SimilarAreasList.tsx:61", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/SimilarAreasList.tsx:61"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4ae843e3247d2c9b", "name": "`truncate` class without `title=` for hover reveal \u2014 components/SearchBox.tsx:264", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/SearchBox.tsx:264"}, "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-05ecd820f9fd03cc", "name": "`truncate` class without `title=` for hover reveal \u2014 components/SelectedSummaryCard.tsx:73", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/SelectedSummaryCard.tsx:73"}, "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-af9e529b633b8ada", "name": "`truncate` class without `title=` for hover reveal \u2014 components/ResultsList.tsx:56", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ResultsList.tsx:56"}, "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-6ab40e8fcb9638ac", "name": "`truncate` class without `title=` for hover reveal \u2014 components/landing/scenes.tsx:118", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/landing/scenes.tsx:118"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-330ad11119f67967", "name": "`truncate` class without `title=` for hover reveal \u2014 components/buyer/SavedChecks.tsx:42", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/buyer/SavedChecks.tsx:42"}, "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-8a13bec6093519e3", "name": "`truncate` class without `title=` for hover reveal \u2014 components/buyer/ReachabilityCard.tsx:283", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/buyer/ReachabilityCard.tsx:283"}, "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-c44c4bab8cf9ec2e", "name": "`truncate` class without `title=` for hover reveal \u2014 components/buyer/BuyerReportPanel.tsx:335", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/buyer/BuyerReportPanel.tsx:335"}, "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-c54119d6787636fd", "name": "`truncate` class without `title=` for hover reveal \u2014 components/buyer/BuyerProfilePanel.tsx:276", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/buyer/BuyerProfilePanel.tsx:276"}, "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-f03842a9318d4525", "name": "Stray `console.log` in TS/JS \u2014 backend/src/lib/log.ts:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/src/lib/log.ts:15"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-197d58efa4edfa08", "name": "TODO/FIXME marker in shipping code \u2014 backend/src/routes/stripe-webhook.ts:90", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 backend/src/routes/stripe-webhook.ts:90"}, "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-166dff3c3df6a10e", "name": "ORM models found but no DB engine detected", "shortDescription": {"text": "ORM models found but no DB engine detected"}, "fullDescription": {"text": "The repo defines tables/models but no DB connection string was found. Likely lives in env vars or a config file the scanner didn't read."}, "properties": {"scanner": "scanner-primary", "layer": "data", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c8067c6bd5e51996", "name": "Insecure pattern 'direct_innerhtml_assignment' in design-preview.html:241", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in design-preview.html:241"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aec9cb0430e851a2", "name": "Insecure pattern 'node_child_process' in scripts/fetch-abs-approvals.ts:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/fetch-abs-approvals.ts:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dd2a425925b54ee5", "name": "Insecure pattern 'node_child_process' in scripts/codex-data-review.ts:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/codex-data-review.ts:14"}, "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-c478d0123edba2cc", "name": "Insecure pattern 'node_child_process' in scripts/verify-coverage-diff.ts:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/verify-coverage-diff.ts:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9ff952a88791e6e4", "name": "Insecure pattern 'node_child_process' in scripts/fetch-schools.ts:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/fetch-schools.ts:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-774caf10eeecd923", "name": "Insecure pattern 'node_child_process' in scripts/preserve-context.ts:24", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/preserve-context.ts:24"}, "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-5f2d0e748417fc16", "name": "Insecure pattern 'node_child_process' in scripts/build.ts:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/build.ts:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f9b41d9e15b94b97", "name": "Insecure pattern 'node_child_process' in scripts/fetch-abs-qualifications.ts:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/fetch-abs-qualifications.ts:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d4c1697ee240e541", "name": "Insecure pattern 'node_child_process' in scripts/fetch-epa-air.ts:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/fetch-epa-air.ts:14"}, "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-a369ce9852f99729", "name": "Insecure pattern 'node_child_process' in scripts/lib/gov-fetch.ts:26", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/lib/gov-fetch.ts:26"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c1e62c8a8becdce0", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/deploy-pages@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-11fe6710547243fb", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8929d5601a104d1f", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4c61a0b758d1639c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-701391bda24a5bf3", "name": "Very large file: app/(map)/page.tsx (1716 lines)", "shortDescription": {"text": "Very large file: app/(map)/page.tsx (1716 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 273 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 33 placeholder/mock markers across 16 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-441ff06d1bd3e84c", "name": "Commented-code block (5 lines) in tests/sa-hazards.test.ts:176", "shortDescription": {"text": "Commented-code block (5 lines) in tests/sa-hazards.test.ts:176"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69bb40e34c96308d", "name": "Commented-code block (9 lines) in tests/scoring-golden.test.ts:73", "shortDescription": {"text": "Commented-code block (9 lines) in tests/scoring-golden.test.ts:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1475affe10fd8cc3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-crime.ts:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-crime.ts:21"}, "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-95d91652f48a4aef", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/precompute-gtfs.ts:93", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/precompute-gtfs.ts:93"}, "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-234eba11e2a05ee4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/apply-walk-access.ts:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/apply-walk-access.ts:12"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-61239f11fed7e504", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-beach-quality.ts:109", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-beach-quality.ts:109"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5cd07ba97361c683", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-mmm.ts:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-mmm.ts:40"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-36947d6fbf535f44", "name": "Commented-code block (6 lines) in scripts/verify-sources.ts:130", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/verify-sources.ts:130"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-270f21156fa99079", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/verify-sources.ts:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/verify-sources.ts:54"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-690fc3ed9eb85abe", "name": "Commented-code block (6 lines) in scripts/build-pockets.ts:26", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/build-pockets.ts:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-512cbb9c94ac3f52", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/verify-coverage-diff.ts:83", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/verify-coverage-diff.ts:83"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8cebf3e6ea1360da", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-activity-centres.ts:35", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-activity-centres.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-fdc436f2264acc2c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/list-abs-services.ts:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/list-abs-services.ts:1"}, "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-f43ec71f339f54a4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-electorate.ts:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-electorate.ts:20"}, "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-0ea176c40b84b964", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/apply-cyclability.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/apply-cyclability.ts:13"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-19cf9df4bdcb0927", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/build-major-projects.ts:70", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/build-major-projects.ts:70"}, "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-50d1619f91236d3c", "name": "Commented-code block (10 lines) in scripts/build.ts:27", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/build.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d0aca92dbcabeb7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-vif.ts:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-vif.ts:5"}, "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-200714078c3f07f9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/apply-civic.ts:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/apply-civic.ts:53"}, "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-daaba8994ff05d79", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-ev-poi.ts:4", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-ev-poi.ts:4"}, "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-f54f944764044fd1", "name": "Commented-code block (10 lines) in scripts/fetch-indicators.ts:183", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/fetch-indicators.ts:183"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8e279452140faf75", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-vg-prices.ts:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-vg-prices.ts:71"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6b0b3c74e404b4ed", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/nsw-crime.ts:19", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/nsw-crime.ts:19"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cc156aea6eed78e4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/vic-facilities.ts:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/vic-facilities.ts:45"}, "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-9a1adbcf667356fb", "name": "Commented-code block (7 lines) in scripts/lib/wa-hazards.ts:156", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/lib/wa-hazards.ts:156"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-36e789fc5d0c297f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/wa-hazards.ts:8", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/wa-hazards.ts:8"}, "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-9275c6db86048a46", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/hazard-adapters.ts:124", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/hazard-adapters.ts:124"}, "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-76aefeac721e99e5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/gov-fetch.ts:68", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/gov-fetch.ts:68"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-026cfbe9b60d8d67", "name": "Commented-code block (5 lines) in scripts/lib/source-refresh.ts:72", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/source-refresh.ts:72"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c5fde1df7461371d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/arcgis-geojson.ts:79", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/arcgis-geojson.ts:79"}, "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-0ab4821b20f43df8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/sa-hazards.ts:348", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/sa-hazards.ts:348"}, "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-65994b13689ba0c2", "name": "Commented-code block (7 lines) in scripts/lib/crime-adapters.ts:266", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/lib/crime-adapters.ts:266"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fe5330dca8a6d5de", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/crime-adapters.ts:94", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/crime-adapters.ts:94"}, "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-913b5d93309245fa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/arcgis-plan-vic.ts:29", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/arcgis-plan-vic.ts:29"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fd66f6cf258dc6f4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/wfs-vic.ts:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/wfs-vic.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-7eb3a330daa8c269", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/nsw-hazards.ts:109", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/nsw-hazards.ts:109"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-79b5f0105717bf93", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/arcgis-fetch.ts:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/arcgis-fetch.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-1de654ab287eed23", "name": "Commented-code block (5 lines) in scripts/lib/qspatial-bpa.ts:408", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/qspatial-bpa.ts:408"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92d8efb254b6a597", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/qspatial-bpa.ts:154", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/qspatial-bpa.ts:154"}, "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-faa6a0bc17f3cf37", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/sa-crime.ts:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/sa-crime.ts:10"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-099ce21805cf6b48", "name": "Commented-code block (6 lines) in components/PlaceProfileClient.tsx:81", "shortDescription": {"text": "Commented-code block (6 lines) in components/PlaceProfileClient.tsx:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec1c9c1f600a7756", "name": "Commented-code block (5 lines) in components/MelbourneMap.tsx:420", "shortDescription": {"text": "Commented-code block (5 lines) in components/MelbourneMap.tsx:420"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bae240043f109ee6", "name": "Commented-code block (5 lines) in components/Landing.tsx:257", "shortDescription": {"text": "Commented-code block (5 lines) in components/Landing.tsx:257"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-01186586866662da", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/AirQualityCard.tsx:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/AirQualityCard.tsx: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-de0a4b34ee598345", "name": "Commented-code block (5 lines) in components/buyer/BuyerReportPanel.tsx:102", "shortDescription": {"text": "Commented-code block (5 lines) in components/buyer/BuyerReportPanel.tsx:102"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-523ef17b4aca9fe9", "name": "Commented-code block (5 lines) in components/buyer/SunShadowView.tsx:233", "shortDescription": {"text": "Commented-code block (5 lines) in components/buyer/SunShadowView.tsx:233"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7110a24e1c8660ec", "name": "Commented-code block (5 lines) in app/buyer/report/report-client.tsx:76", "shortDescription": {"text": "Commented-code block (5 lines) in app/buyer/report/report-client.tsx:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0a3761307c4076fe", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/buyer/report/report-client.tsx:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/buyer/report/report-client.tsx:45"}, "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-3df208efb431c438", "name": "Commented-code block (6 lines) in app/buyer/report/page.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in app/buyer/report/page.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8e52eff811127830", "name": "Commented-code block (7 lines) in app/(map)/page.tsx:118", "shortDescription": {"text": "Commented-code block (7 lines) in app/(map)/page.tsx:118"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-809a242c10712da1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/(map)/page.tsx:394", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/(map)/page.tsx:394"}, "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-4eafa38ce6c92a8f", "name": "Commented-code block (5 lines) in lib/planning-at.ts:362", "shortDescription": {"text": "Commented-code block (5 lines) in lib/planning-at.ts:362"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96653aa8dfd16e0a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/planning-at.ts:416", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/planning-at.ts:416"}, "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-593bc5b3b66d91c4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/sources.ts:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/sources.ts:32"}, "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-b498ddcdb7ef1e39", "name": "Commented-code block (6 lines) in lib/user-prefs.ts:97", "shortDescription": {"text": "Commented-code block (6 lines) in lib/user-prefs.ts:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e9db27e5094fbb16", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/report-tiles.ts:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/report-tiles.ts:32"}, "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-ed29873a9afe579b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/asset-path.ts:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/asset-path.ts:5"}, "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-7131146d24438b17", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/parcel.ts:8", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/parcel.ts:8"}, "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-5d8e3bb9a2fec229", "name": "Commented-code block (6 lines) in lib/places-data.ts:10", "shortDescription": {"text": "Commented-code block (6 lines) in lib/places-data.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1aa681d865ba4cb1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/places-data.ts:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/places-data.ts:40"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce1e3d76d316c162", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/reachability.ts:129", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/reachability.ts:129"}, "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-d407306636c36444", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/route-drive.ts:121", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/route-drive.ts:121"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ca5b4e6fbe83ec30", "name": "Commented-code block (5 lines) in lib/geocode.ts:28", "shortDescription": {"text": "Commented-code block (5 lines) in lib/geocode.ts: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-6bd1323e8f37217d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/geocode.ts:154", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/geocode.ts:154"}, "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-9f8399981fd275d4", "name": "Commented-code block (5 lines) in lib/buyer-report/build.ts:86", "shortDescription": {"text": "Commented-code block (5 lines) in lib/buyer-report/build.ts:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-badabba4316fa8cf", "name": "Commented-code block (7 lines) in backend/vitest.config.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in backend/vitest.config.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-361252ea2a1cd36c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 backend/test/fakes.ts:757", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/test/fakes.ts:757"}, "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-7bad13a7445b580e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 backend/src/index.ts:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/src/index.ts:40"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/17735"}, "properties": {"repository": "rafaelvonhellmann/melbourne-liveability", "repoUrl": "https://github.com/rafaelvonhellmann/melbourne-liveability", "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-1a9de0d8504dc495", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/crosswalk.test.ts:35"}, "properties": {"repobilityId": "c4f4ef66ba67bd20", "scanner": "scanner-primary", "fingerprint": "1a9de0d8504dc495", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-da22fcd15efd9caf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-future-transport.ts:49"}, "properties": {"repobilityId": "f2d3a6b5e059c2c0", "scanner": "scanner-primary", "fingerprint": "da22fcd15efd9caf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6bfb95fa9098eec7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-fire-history.ts:38"}, "properties": {"repobilityId": "2a97e1bea62cdda0", "scanner": "scanner-primary", "fingerprint": "6bfb95fa9098eec7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6c675a37290b69fc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-timeseries.ts:90"}, "properties": {"repobilityId": "4d40828f659f1233", "scanner": "scanner-primary", "fingerprint": "6c675a37290b69fc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4bfec74b3035c29c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-crosswalk.ts:186"}, "properties": {"repobilityId": "b191785ef44d432b", "scanner": "scanner-primary", "fingerprint": "4bfec74b3035c29c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-15ad06d0db9e124c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-nuisance.ts:33"}, "properties": {"repobilityId": "4697baecaae7bd56", "scanner": "scanner-primary", "fingerprint": "15ad06d0db9e124c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e9e176e09189f6a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-hazards.ts:36"}, "properties": {"repobilityId": "a53d616b944161b1", "scanner": "scanner-primary", "fingerprint": "e9e176e09189f6a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7d18de98df54b167", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-crime.ts:38"}, "properties": {"repobilityId": "5372d2bbb41d161a", "scanner": "scanner-primary", "fingerprint": "7d18de98df54b167", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5f9458eee918b905", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/hash-sources.ts:96"}, "properties": {"repobilityId": "c35dfe4e725cdd2d", "scanner": "scanner-primary", "fingerprint": "5f9458eee918b905", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-69f4e2c4c23f0a38", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/score.ts:41"}, "properties": {"repobilityId": "6c97026f65002d1a", "scanner": "scanner-primary", "fingerprint": "69f4e2c4c23f0a38", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5f6cd6632ba53d6d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/precompute-gtfs.ts:86"}, "properties": {"repobilityId": "46f740afedc5ff09", "scanner": "scanner-primary", "fingerprint": "5f6cd6632ba53d6d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a5b362bb703c4c5c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-walk-access.ts:89"}, "properties": {"repobilityId": "2d14dce18634059f", "scanner": "scanner-primary", "fingerprint": "a5b362bb703c4c5c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8799137f6cf255ba", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-beach-quality.ts:143"}, "properties": {"repobilityId": "7509a203ff084dd1", "scanner": "scanner-primary", "fingerprint": "8799137f6cf255ba", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-97a24821ba68ccf7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-abs-approvals.ts:22"}, "properties": {"repobilityId": "50efb653173fdd62", "scanner": "scanner-primary", "fingerprint": "97a24821ba68ccf7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8a70f1f516715350", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-noise.ts:71"}, "properties": {"repobilityId": "9b119a850a2131a7", "scanner": "scanner-primary", "fingerprint": "8a70f1f516715350", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-81c1e796efec0e40", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-overlays.ts:41"}, "properties": {"repobilityId": "8a8f38bd9f015908", "scanner": "scanner-primary", "fingerprint": "81c1e796efec0e40", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0eba8a2df87ba6e2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-mmm.ts:63"}, "properties": {"repobilityId": "a588ca2511fb9d6b", "scanner": "scanner-primary", "fingerprint": "0eba8a2df87ba6e2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8886c0777d05c5b6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-traffic-aadt.ts:33"}, "properties": {"repobilityId": "8eaa893409549ab1", "scanner": "scanner-primary", "fingerprint": "8886c0777d05c5b6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cb03b7c4713346c3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-social-housing.ts:18"}, "properties": {"repobilityId": "e385bbc339c0ce9b", "scanner": "scanner-primary", "fingerprint": "cb03b7c4713346c3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6d1541b953b5b88b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-sources.ts:313"}, "properties": {"repobilityId": "42614a0d48e5c062", "scanner": "scanner-primary", "fingerprint": "6d1541b953b5b88b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f44687d2416d775c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-pockets.ts:212"}, "properties": {"repobilityId": "64eab96d83c47557", "scanner": "scanner-primary", "fingerprint": "f44687d2416d775c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9c7ec3ad9dec360c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-abs-approvals.ts:49"}, "properties": {"repobilityId": "bfd66ad712ad54f7", "scanner": "scanner-primary", "fingerprint": "9c7ec3ad9dec360c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-07a8658d47b9709a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-building-tiles.ts:115"}, "properties": {"repobilityId": "3ca8edceee8f386b", "scanner": "scanner-primary", "fingerprint": "07a8658d47b9709a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-39f2b8f406673403", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-school-zones.ts:73"}, "properties": {"repobilityId": "81a298af5f6ae4f0", "scanner": "scanner-primary", "fingerprint": "39f2b8f406673403", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ca1bd4e8558c0802", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-schools.ts:43"}, "properties": {"repobilityId": "88c57e9f109390a5", "scanner": "scanner-primary", "fingerprint": "ca1bd4e8558c0802", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5d980e63e4f1d43b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-vic-facilities.ts:17"}, "properties": {"repobilityId": "d669c903699277d0", "scanner": "scanner-primary", "fingerprint": "5d980e63e4f1d43b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d69ed543f4e1fab4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-coverage-diff.ts:109"}, "properties": {"repobilityId": "198616e902b0af85", "scanner": "scanner-primary", "fingerprint": "d69ed543f4e1fab4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f95ba470ac6b018b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-density.ts:44"}, "properties": {"repobilityId": "3a1d257c8a85ee4e", "scanner": "scanner-primary", "fingerprint": "f95ba470ac6b018b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e00e61e68634ac6a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-vif.ts:20"}, "properties": {"repobilityId": "412ab72006d8f931", "scanner": "scanner-primary", "fingerprint": "e00e61e68634ac6a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5b867759a2e44a09", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-community-poi.ts:18"}, "properties": {"repobilityId": "4401a48f07ac7a84", "scanner": "scanner-primary", "fingerprint": "5b867759a2e44a09", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1bf9aac326d364ba", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch.ts:26"}, "properties": {"repobilityId": "914468de34d752fc", "scanner": "scanner-primary", "fingerprint": "1bf9aac326d364ba", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5e12646fe7c8609c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-freshness.ts:91"}, "properties": {"repobilityId": "cc442b05ecf9131e", "scanner": "scanner-primary", "fingerprint": "5e12646fe7c8609c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a970fcc9feaab32e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-schools.ts:81"}, "properties": {"repobilityId": "d8c60dcc618f51aa", "scanner": "scanner-primary", "fingerprint": "a970fcc9feaab32e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-54aea6d7007beca4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-activity-centres.ts:30"}, "properties": {"repobilityId": "cdb9a427b71958c5", "scanner": "scanner-primary", "fingerprint": "54aea6d7007beca4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0db8dc99a9ec15e3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-extra-poi.ts:13"}, "properties": {"repobilityId": "d299e908f64fb3b0", "scanner": "scanner-primary", "fingerprint": "0db8dc99a9ec15e3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c4d593abfafd2715", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-aged-care.ts:17"}, "properties": {"repobilityId": "ceb6eb3b3f048b2e", "scanner": "scanner-primary", "fingerprint": "c4d593abfafd2715", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-666329dccb9d4fd6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/list-abs-services.ts:7"}, "properties": {"repobilityId": "22a19d0c0ec6302e", "scanner": "scanner-primary", "fingerprint": "666329dccb9d4fd6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41b4320a12530862", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-sea-level.ts:59"}, "properties": {"repobilityId": "99c7ad3c671de61d", "scanner": "scanner-primary", "fingerprint": "41b4320a12530862", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3d40d4c0a9ba34bd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-overlays.ts:65"}, "properties": {"repobilityId": "a2a5b8ccc66cfe9f", "scanner": "scanner-primary", "fingerprint": "3d40d4c0a9ba34bd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-159a902d0c28ebb3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-train-stations.ts:17"}, "properties": {"repobilityId": "dd078a6d7d32597e", "scanner": "scanner-primary", "fingerprint": "159a902d0c28ebb3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fb2e8f6780798a25", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-seifa-sa1.ts:146"}, "properties": {"repobilityId": "c9503c087cb31fd7", "scanner": "scanner-primary", "fingerprint": "fb2e8f6780798a25", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-498e3b57532bea7f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-electorate.ts:56"}, "properties": {"repobilityId": "57c67585018abb16", "scanner": "scanner-primary", "fingerprint": "498e3b57532bea7f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9e931ffc3860514b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-heritage.ts:21"}, "properties": {"repobilityId": "a7a97d425dba4651", "scanner": "scanner-primary", "fingerprint": "9e931ffc3860514b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fab3af1e19ec522a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-cyclability.ts:62"}, "properties": {"repobilityId": "5b3cad0cc3d912e2", "scanner": "scanner-primary", "fingerprint": "fab3af1e19ec522a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8692e45068224b07", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-major-projects.ts:88"}, "properties": {"repobilityId": "019e34dc3e42c079", "scanner": "scanner-primary", "fingerprint": "8692e45068224b07", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41fe4903853e1b58", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/preserve-context.ts:67"}, "properties": {"repobilityId": "42712c056ca5c9c2", "scanner": "scanner-primary", "fingerprint": "41fe4903853e1b58", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-84b58fdc1d262826", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-poi.ts:204"}, "properties": {"repobilityId": "f459d9ca09e7c784", "scanner": "scanner-primary", "fingerprint": "84b58fdc1d262826", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a7498ce7e1ab0855", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-fire-history.ts:21"}, "properties": {"repobilityId": "54ac3b109c80309b", "scanner": "scanner-primary", "fingerprint": "a7498ce7e1ab0855", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-318eabe5504d8c6b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build.ts:66"}, "properties": {"repobilityId": "60ccf58db35ef027", "scanner": "scanner-primary", "fingerprint": "318eabe5504d8c6b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1af5fcc86138fd5b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-data-audit.ts:81"}, "properties": {"repobilityId": "aad7b43ea6406185", "scanner": "scanner-primary", "fingerprint": "1af5fcc86138fd5b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-65093b42f9179269", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-vif.ts:18"}, "properties": {"repobilityId": "4fd24bc714351228", "scanner": "scanner-primary", "fingerprint": "65093b42f9179269", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2bc29148062678ac", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/normalize.ts:180"}, "properties": {"repobilityId": "f9201dce149cd50c", "scanner": "scanner-primary", "fingerprint": "2bc29148062678ac", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7806ef9f500b2f2b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-civic.ts:106"}, "properties": {"repobilityId": "c036a55f84196994", "scanner": "scanner-primary", "fingerprint": "7806ef9f500b2f2b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1a828b320ff93e05", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-abs-qualifications.ts:54"}, "properties": {"repobilityId": "614e957be3cca823", "scanner": "scanner-primary", "fingerprint": "1a828b320ff93e05", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-03255b7418c10778", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-ev-poi.ts:14"}, "properties": {"repobilityId": "81b634c6f5bf2581", "scanner": "scanner-primary", "fingerprint": "03255b7418c10778", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-096f3b6b8ddc8c54", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-housing-stress.ts:18"}, "properties": {"repobilityId": "95fc55e034682d06", "scanner": "scanner-primary", "fingerprint": "096f3b6b8ddc8c54", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-35077f6bda6d5dd6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-heritage.ts:40"}, "properties": {"repobilityId": "b76e679b1e1c1042", "scanner": "scanner-primary", "fingerprint": "35077f6bda6d5dd6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8e92906fb03ba788", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bake-report-tiles.ts:322"}, "properties": {"repobilityId": "973a2e6072521718", "scanner": "scanner-primary", "fingerprint": "8e92906fb03ba788", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d0beb4078e95af6f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-sea-level.ts:27"}, "properties": {"repobilityId": "1aaf73dc8a72192b", "scanner": "scanner-primary", "fingerprint": "d0beb4078e95af6f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8b674f948d753591", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-geo.ts:87"}, "properties": {"repobilityId": "91828f6668c52d11", "scanner": "scanner-primary", "fingerprint": "8b674f948d753591", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9477a961677f5385", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-epa-air.ts:53"}, "properties": {"repobilityId": "d7ec9e02aa715bf7", "scanner": "scanner-primary", "fingerprint": "9477a961677f5385", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a44e887c142d3b7e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-housing-stress.ts:45"}, "properties": {"repobilityId": "da04ad8793276249", "scanner": "scanner-primary", "fingerprint": "a44e887c142d3b7e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3b42132ab1e7f2e9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-indicators.ts:18"}, "properties": {"repobilityId": "b3affdd8dc8b8d44", "scanner": "scanner-primary", "fingerprint": "3b42132ab1e7f2e9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-69803063c7b92aca", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-vg-prices.ts:317"}, "properties": {"repobilityId": "9d67436473862bcc", "scanner": "scanner-primary", "fingerprint": "69803063c7b92aca", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-63bdfc5b12534e00", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-abs-qualifications.ts:21"}, "properties": {"repobilityId": "2380f1271b710765", "scanner": "scanner-primary", "fingerprint": "63bdfc5b12534e00", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e2793ac2d8901692", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-social-housing.ts:54"}, "properties": {"repobilityId": "a47d53c193b60245", "scanner": "scanner-primary", "fingerprint": "e2793ac2d8901692", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5cc363e66661a0a7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/nsw-crime.ts:326"}, "properties": {"repobilityId": "acc15b8b73c429d9", "scanner": "scanner-primary", "fingerprint": "5cc363e66661a0a7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bd1162a8a74c2195", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/wa-hazards.ts:142"}, "properties": {"repobilityId": "498636c0efee1888", "scanner": "scanner-primary", "fingerprint": "bd1162a8a74c2195", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-18d2d22c5b2e9f47", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/hazard-adapters.ts:127"}, "properties": {"repobilityId": "351cf5d24e064cea", "scanner": "scanner-primary", "fingerprint": "18d2d22c5b2e9f47", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1253fdabc7497459", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/wa-crime.ts:541"}, "properties": {"repobilityId": "63f5f5ace696e8d8", "scanner": "scanner-primary", "fingerprint": "1253fdabc7497459", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4090528ce2a8dd35", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/sa-hazards.ts:287"}, "properties": {"repobilityId": "3d106596ac678a30", "scanner": "scanner-primary", "fingerprint": "4090528ce2a8dd35", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-83443fe9b2ff949f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/crime-adapters.ts:138"}, "properties": {"repobilityId": "f56490b2209881f8", "scanner": "scanner-primary", "fingerprint": "83443fe9b2ff949f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a15511fc62010dde", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/nsw-hazards.ts:112"}, "properties": {"repobilityId": "11a46a3993958c11", "scanner": "scanner-primary", "fingerprint": "a15511fc62010dde", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-328efdfa1d1428b9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/nsw-beachwatch.ts:258"}, "properties": {"repobilityId": "0a56790686ba1924", "scanner": "scanner-primary", "fingerprint": "328efdfa1d1428b9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c465edc5808dd4f4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/qspatial-bpa.ts:487"}, "properties": {"repobilityId": "317a99f446c03491", "scanner": "scanner-primary", "fingerprint": "c465edc5808dd4f4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-df041671147f5cfc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lib/sa-crime.ts:334"}, "properties": {"repobilityId": "df9e67984129cb90", "scanner": "scanner-primary", "fingerprint": "df041671147f5cfc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5991a4b2a1202b48", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ShortlistPanel.tsx:102"}, "properties": {"repobilityId": "f5f35b5aca1b1c14", "scanner": "scanner-primary", "fingerprint": "5991a4b2a1202b48", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9b9e8cf3ca465c5d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/SimilarAreasList.tsx:61"}, "properties": {"repobilityId": "1445bbda12e097a6", "scanner": "scanner-primary", "fingerprint": "9b9e8cf3ca465c5d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4ae843e3247d2c9b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/SearchBox.tsx:264"}, "properties": {"repobilityId": "a7342a481a189a14", "scanner": "scanner-primary", "fingerprint": "4ae843e3247d2c9b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-05ecd820f9fd03cc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/SelectedSummaryCard.tsx:73"}, "properties": {"repobilityId": "f321a6956b8fda7d", "scanner": "scanner-primary", "fingerprint": "05ecd820f9fd03cc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-af9e529b633b8ada", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ResultsList.tsx:56"}, "properties": {"repobilityId": "38c9620cc41266c7", "scanner": "scanner-primary", "fingerprint": "af9e529b633b8ada", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6ab40e8fcb9638ac", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/landing/scenes.tsx:118"}, "properties": {"repobilityId": "110e9b413f551027", "scanner": "scanner-primary", "fingerprint": "6ab40e8fcb9638ac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-330ad11119f67967", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/buyer/SavedChecks.tsx:42"}, "properties": {"repobilityId": "da54edf031d46877", "scanner": "scanner-primary", "fingerprint": "330ad11119f67967", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8a13bec6093519e3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/buyer/ReachabilityCard.tsx:283"}, "properties": {"repobilityId": "b07ad60605f142b9", "scanner": "scanner-primary", "fingerprint": "8a13bec6093519e3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c44c4bab8cf9ec2e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/buyer/BuyerReportPanel.tsx:335"}, "properties": {"repobilityId": "aa10cc7e3143a8ef", "scanner": "scanner-primary", "fingerprint": "c44c4bab8cf9ec2e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c54119d6787636fd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/buyer/BuyerProfilePanel.tsx:276"}, "properties": {"repobilityId": "1ef9ac4efaac05dd", "scanner": "scanner-primary", "fingerprint": "c54119d6787636fd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f03842a9318d4525", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/src/lib/log.ts:15"}, "properties": {"repobilityId": "491dd0285ec92cf0", "scanner": "scanner-primary", "fingerprint": "f03842a9318d4525", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-197d58efa4edfa08", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 backend/src/routes/stripe-webhook.ts:90"}, "properties": {"repobilityId": "70826e7aa4343e6b", "scanner": "scanner-primary", "fingerprint": "197d58efa4edfa08", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-166dff3c3df6a10e", "level": "warning", "message": {"text": "ORM models found but no DB engine detected"}, "properties": {"repobilityId": "cda36de65e114635", "scanner": "scanner-primary", "fingerprint": "166dff3c3df6a10e", "layer": "data", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-c8067c6bd5e51996", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in design-preview.html:241"}, "properties": {"repobilityId": "d12b8090b61f882a", "scanner": "scanner-primary", "fingerprint": "c8067c6bd5e51996", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "design-preview.html"}, "region": {"startLine": 241}}}]}, {"ruleId": "scanner-aec9cb0430e851a2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/fetch-abs-approvals.ts:16"}, "properties": {"repobilityId": "f41a0f56379af38a", "scanner": "scanner-primary", "fingerprint": "aec9cb0430e851a2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fetch-abs-approvals.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-dd2a425925b54ee5", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/codex-data-review.ts:14"}, "properties": {"repobilityId": "3dbcfcb3217f481d", "scanner": "scanner-primary", "fingerprint": "dd2a425925b54ee5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/codex-data-review.ts"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-c478d0123edba2cc", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/verify-coverage-diff.ts:16"}, "properties": {"repobilityId": "c62f5383d9f2b428", "scanner": "scanner-primary", "fingerprint": "c478d0123edba2cc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/verify-coverage-diff.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-9ff952a88791e6e4", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/fetch-schools.ts:15"}, "properties": {"repobilityId": "47e249a77d89d914", "scanner": "scanner-primary", "fingerprint": "9ff952a88791e6e4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fetch-schools.ts"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-774caf10eeecd923", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/preserve-context.ts:24"}, "properties": {"repobilityId": "98c75eaa5ff183b1", "scanner": "scanner-primary", "fingerprint": "774caf10eeecd923", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/preserve-context.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-5f2d0e748417fc16", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/build.ts:16"}, "properties": {"repobilityId": "a7b039efd22d93a5", "scanner": "scanner-primary", "fingerprint": "5f2d0e748417fc16", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-f9b41d9e15b94b97", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/fetch-abs-qualifications.ts:15"}, "properties": {"repobilityId": "c67988615106d8fe", "scanner": "scanner-primary", "fingerprint": "f9b41d9e15b94b97", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fetch-abs-qualifications.ts"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-d4c1697ee240e541", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/fetch-epa-air.ts:14"}, "properties": {"repobilityId": "9c569c9ad655696e", "scanner": "scanner-primary", "fingerprint": "d4c1697ee240e541", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fetch-epa-air.ts"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-a369ce9852f99729", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/lib/gov-fetch.ts:26"}, "properties": {"repobilityId": "2bad2a3c6199ec39", "scanner": "scanner-primary", "fingerprint": "a369ce9852f99729", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/lib/gov-fetch.ts"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-c1e62c8a8becdce0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9438d873113cd8c4", "scanner": "scanner-primary", "fingerprint": "c1e62c8a8becdce0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-pages.yml"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-11fe6710547243fb", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "c88f07fd35b9711f", "scanner": "scanner-primary", "fingerprint": "11fe6710547243fb", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-pages.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8929d5601a104d1f", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "44a78bae649cc3d9", "scanner": "scanner-primary", "fingerprint": "8929d5601a104d1f", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/data-refresh.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4c61a0b758d1639c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "07703407ac87399c", "scanner": "scanner-primary", "fingerprint": "4c61a0b758d1639c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/bake-buildings.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-701391bda24a5bf3", "level": "note", "message": {"text": "Very large file: app/(map)/page.tsx (1716 lines)"}, "properties": {"repobilityId": "f58f164beb5c09ce", "scanner": "scanner-primary", "fingerprint": "701391bda24a5bf3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "dd4f234ff1ef3490", "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": "4c01e195011e5597", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "841818c3faf5fcda", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "07b2173c6677e662", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "fe56067606ede888", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-441ff06d1bd3e84c", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/sa-hazards.test.ts:176"}, "properties": {"repobilityId": "581a822dbd1ec1d6", "scanner": "scanner-primary", "fingerprint": "441ff06d1bd3e84c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69bb40e34c96308d", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/scoring-golden.test.ts:73"}, "properties": {"repobilityId": "a41324206766ebbe", "scanner": "scanner-primary", "fingerprint": "69bb40e34c96308d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1475affe10fd8cc3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-crime.ts:21"}, "properties": {"repobilityId": "905d795e05cb4d6b", "scanner": "scanner-primary", "fingerprint": "1475affe10fd8cc3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-95d91652f48a4aef", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/precompute-gtfs.ts:93"}, "properties": {"repobilityId": "2ff7d8f2ebb7175c", "scanner": "scanner-primary", "fingerprint": "95d91652f48a4aef", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-234eba11e2a05ee4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/apply-walk-access.ts:12"}, "properties": {"repobilityId": "5f12ce79eff192a8", "scanner": "scanner-primary", "fingerprint": "234eba11e2a05ee4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-61239f11fed7e504", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-beach-quality.ts:109"}, "properties": {"repobilityId": "a625f7b4148fc1ac", "scanner": "scanner-primary", "fingerprint": "61239f11fed7e504", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5cd07ba97361c683", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-mmm.ts:40"}, "properties": {"repobilityId": "bd0782f40d9c21b2", "scanner": "scanner-primary", "fingerprint": "5cd07ba97361c683", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-36947d6fbf535f44", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/verify-sources.ts:130"}, "properties": {"repobilityId": "23d4422c3f3b66b8", "scanner": "scanner-primary", "fingerprint": "36947d6fbf535f44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-270f21156fa99079", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/verify-sources.ts:54"}, "properties": {"repobilityId": "f072c1858471b238", "scanner": "scanner-primary", "fingerprint": "270f21156fa99079", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-690fc3ed9eb85abe", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/build-pockets.ts:26"}, "properties": {"repobilityId": "ac69c5b761c6c775", "scanner": "scanner-primary", "fingerprint": "690fc3ed9eb85abe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-512cbb9c94ac3f52", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/verify-coverage-diff.ts:83"}, "properties": {"repobilityId": "1d3b7f06b9cc24ba", "scanner": "scanner-primary", "fingerprint": "512cbb9c94ac3f52", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8cebf3e6ea1360da", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-activity-centres.ts:35"}, "properties": {"repobilityId": "000716b0e5f77f76", "scanner": "scanner-primary", "fingerprint": "8cebf3e6ea1360da", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fdc436f2264acc2c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/list-abs-services.ts:1"}, "properties": {"repobilityId": "cfb4ced6c210e9d7", "scanner": "scanner-primary", "fingerprint": "fdc436f2264acc2c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f43ec71f339f54a4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-electorate.ts:20"}, "properties": {"repobilityId": "10776e2e6cdaea82", "scanner": "scanner-primary", "fingerprint": "f43ec71f339f54a4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0ea176c40b84b964", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/apply-cyclability.ts:13"}, "properties": {"repobilityId": "891f42c5445edd3c", "scanner": "scanner-primary", "fingerprint": "0ea176c40b84b964", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-19cf9df4bdcb0927", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/build-major-projects.ts:70"}, "properties": {"repobilityId": "b06af533f8485963", "scanner": "scanner-primary", "fingerprint": "19cf9df4bdcb0927", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-50d1619f91236d3c", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/build.ts:27"}, "properties": {"repobilityId": "aa962c2fff48d7d5", "scanner": "scanner-primary", "fingerprint": "50d1619f91236d3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d0aca92dbcabeb7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-vif.ts:5"}, "properties": {"repobilityId": "c6500bf593a5a535", "scanner": "scanner-primary", "fingerprint": "0d0aca92dbcabeb7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-200714078c3f07f9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/apply-civic.ts:53"}, "properties": {"repobilityId": "b9498e03cc371c4b", "scanner": "scanner-primary", "fingerprint": "200714078c3f07f9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-daaba8994ff05d79", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-ev-poi.ts:4"}, "properties": {"repobilityId": "f4155705238a6b16", "scanner": "scanner-primary", "fingerprint": "daaba8994ff05d79", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f54f944764044fd1", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/fetch-indicators.ts:183"}, "properties": {"repobilityId": "5a3e4b8759b84b6a", "scanner": "scanner-primary", "fingerprint": "f54f944764044fd1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e279452140faf75", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-vg-prices.ts:71"}, "properties": {"repobilityId": "61a962a126dbc29b", "scanner": "scanner-primary", "fingerprint": "8e279452140faf75", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6b0b3c74e404b4ed", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/nsw-crime.ts:19"}, "properties": {"repobilityId": "142b5333e0768a71", "scanner": "scanner-primary", "fingerprint": "6b0b3c74e404b4ed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cc156aea6eed78e4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/vic-facilities.ts:45"}, "properties": {"repobilityId": "be6dcac9c410afc7", "scanner": "scanner-primary", "fingerprint": "cc156aea6eed78e4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9a1adbcf667356fb", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/lib/wa-hazards.ts:156"}, "properties": {"repobilityId": "fafade8484ab5914", "scanner": "scanner-primary", "fingerprint": "9a1adbcf667356fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36e789fc5d0c297f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/wa-hazards.ts:8"}, "properties": {"repobilityId": "bfa25b14987ca049", "scanner": "scanner-primary", "fingerprint": "36e789fc5d0c297f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9275c6db86048a46", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/hazard-adapters.ts:124"}, "properties": {"repobilityId": "7593b337c4d199e0", "scanner": "scanner-primary", "fingerprint": "9275c6db86048a46", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-76aefeac721e99e5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/gov-fetch.ts:68"}, "properties": {"repobilityId": "cb8fbb538d876fa5", "scanner": "scanner-primary", "fingerprint": "76aefeac721e99e5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-026cfbe9b60d8d67", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/source-refresh.ts:72"}, "properties": {"repobilityId": "d4fd2e308388ff2d", "scanner": "scanner-primary", "fingerprint": "026cfbe9b60d8d67", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5fde1df7461371d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/arcgis-geojson.ts:79"}, "properties": {"repobilityId": "29e2b3bfec908c9c", "scanner": "scanner-primary", "fingerprint": "c5fde1df7461371d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0ab4821b20f43df8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/sa-hazards.ts:348"}, "properties": {"repobilityId": "bace0743a1bce76b", "scanner": "scanner-primary", "fingerprint": "0ab4821b20f43df8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-65994b13689ba0c2", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/lib/crime-adapters.ts:266"}, "properties": {"repobilityId": "1554d38d30401798", "scanner": "scanner-primary", "fingerprint": "65994b13689ba0c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe5330dca8a6d5de", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/crime-adapters.ts:94"}, "properties": {"repobilityId": "8fcb22f802e58d34", "scanner": "scanner-primary", "fingerprint": "fe5330dca8a6d5de", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-913b5d93309245fa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/arcgis-plan-vic.ts:29"}, "properties": {"repobilityId": "d88b16e84081ea7b", "scanner": "scanner-primary", "fingerprint": "913b5d93309245fa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fd66f6cf258dc6f4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/wfs-vic.ts:43"}, "properties": {"repobilityId": "d18a0c541c94697d", "scanner": "scanner-primary", "fingerprint": "fd66f6cf258dc6f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7eb3a330daa8c269", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/nsw-hazards.ts:109"}, "properties": {"repobilityId": "7a1f01b5c2c55729", "scanner": "scanner-primary", "fingerprint": "7eb3a330daa8c269", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-79b5f0105717bf93", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/arcgis-fetch.ts:43"}, "properties": {"repobilityId": "76f44b7c221a0fa2", "scanner": "scanner-primary", "fingerprint": "79b5f0105717bf93", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1de654ab287eed23", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/qspatial-bpa.ts:408"}, "properties": {"repobilityId": "51255b2d4bae6e85", "scanner": "scanner-primary", "fingerprint": "1de654ab287eed23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92d8efb254b6a597", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/qspatial-bpa.ts:154"}, "properties": {"repobilityId": "17d88e87dbe10ed7", "scanner": "scanner-primary", "fingerprint": "92d8efb254b6a597", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-faa6a0bc17f3cf37", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/sa-crime.ts:10"}, "properties": {"repobilityId": "9509e48a285f2012", "scanner": "scanner-primary", "fingerprint": "faa6a0bc17f3cf37", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-099ce21805cf6b48", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/PlaceProfileClient.tsx:81"}, "properties": {"repobilityId": "292557a5d2afda9c", "scanner": "scanner-primary", "fingerprint": "099ce21805cf6b48", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec1c9c1f600a7756", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/MelbourneMap.tsx:420"}, "properties": {"repobilityId": "b02fa035dd50d140", "scanner": "scanner-primary", "fingerprint": "ec1c9c1f600a7756", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bae240043f109ee6", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/Landing.tsx:257"}, "properties": {"repobilityId": "71899d17dd3d08ad", "scanner": "scanner-primary", "fingerprint": "bae240043f109ee6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01186586866662da", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/AirQualityCard.tsx:36"}, "properties": {"repobilityId": "d227f85e7c774822", "scanner": "scanner-primary", "fingerprint": "01186586866662da", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-de0a4b34ee598345", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/buyer/BuyerReportPanel.tsx:102"}, "properties": {"repobilityId": "bedfae44a9324690", "scanner": "scanner-primary", "fingerprint": "de0a4b34ee598345", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-523ef17b4aca9fe9", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/buyer/SunShadowView.tsx:233"}, "properties": {"repobilityId": "ad12425dd164eaca", "scanner": "scanner-primary", "fingerprint": "523ef17b4aca9fe9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7110a24e1c8660ec", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/buyer/report/report-client.tsx:76"}, "properties": {"repobilityId": "ad83cfff66f96bdd", "scanner": "scanner-primary", "fingerprint": "7110a24e1c8660ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a3761307c4076fe", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/buyer/report/report-client.tsx:45"}, "properties": {"repobilityId": "556e373ed8aa3637", "scanner": "scanner-primary", "fingerprint": "0a3761307c4076fe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3df208efb431c438", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/buyer/report/page.tsx:4"}, "properties": {"repobilityId": "58d4ce462e479db9", "scanner": "scanner-primary", "fingerprint": "3df208efb431c438", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e52eff811127830", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/(map)/page.tsx:118"}, "properties": {"repobilityId": "25ecdc1eddb1521e", "scanner": "scanner-primary", "fingerprint": "8e52eff811127830", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-809a242c10712da1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/(map)/page.tsx:394"}, "properties": {"repobilityId": "7a05d6c4154c986b", "scanner": "scanner-primary", "fingerprint": "809a242c10712da1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4eafa38ce6c92a8f", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/planning-at.ts:362"}, "properties": {"repobilityId": "66d57224bb3c80f1", "scanner": "scanner-primary", "fingerprint": "4eafa38ce6c92a8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96653aa8dfd16e0a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/planning-at.ts:416"}, "properties": {"repobilityId": "91e1aac38d07e555", "scanner": "scanner-primary", "fingerprint": "96653aa8dfd16e0a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-593bc5b3b66d91c4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/sources.ts:32"}, "properties": {"repobilityId": "493a0fc97a7124ad", "scanner": "scanner-primary", "fingerprint": "593bc5b3b66d91c4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b498ddcdb7ef1e39", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/user-prefs.ts:97"}, "properties": {"repobilityId": "774401cd4b4c7ef9", "scanner": "scanner-primary", "fingerprint": "b498ddcdb7ef1e39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9db27e5094fbb16", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/report-tiles.ts:32"}, "properties": {"repobilityId": "76b8a766dd6f707a", "scanner": "scanner-primary", "fingerprint": "e9db27e5094fbb16", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ed29873a9afe579b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/asset-path.ts:5"}, "properties": {"repobilityId": "b9204a7981e8adf5", "scanner": "scanner-primary", "fingerprint": "ed29873a9afe579b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7131146d24438b17", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/parcel.ts:8"}, "properties": {"repobilityId": "36aef1f3647019cc", "scanner": "scanner-primary", "fingerprint": "7131146d24438b17", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5d8e3bb9a2fec229", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/places-data.ts:10"}, "properties": {"repobilityId": "7d36ceba35529647", "scanner": "scanner-primary", "fingerprint": "5d8e3bb9a2fec229", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1aa681d865ba4cb1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/places-data.ts:40"}, "properties": {"repobilityId": "44ed04c795c41a16", "scanner": "scanner-primary", "fingerprint": "1aa681d865ba4cb1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ce1e3d76d316c162", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/reachability.ts:129"}, "properties": {"repobilityId": "982a28db7f74f5d6", "scanner": "scanner-primary", "fingerprint": "ce1e3d76d316c162", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d407306636c36444", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/route-drive.ts:121"}, "properties": {"repobilityId": "b83af8076c33d62c", "scanner": "scanner-primary", "fingerprint": "d407306636c36444", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ca5b4e6fbe83ec30", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/geocode.ts:28"}, "properties": {"repobilityId": "66aab277c95a4d52", "scanner": "scanner-primary", "fingerprint": "ca5b4e6fbe83ec30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6bd1323e8f37217d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/geocode.ts:154"}, "properties": {"repobilityId": "4489b822ae476781", "scanner": "scanner-primary", "fingerprint": "6bd1323e8f37217d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9f8399981fd275d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/buyer-report/build.ts:86"}, "properties": {"repobilityId": "5d3b6c9eb1093f4e", "scanner": "scanner-primary", "fingerprint": "9f8399981fd275d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-badabba4316fa8cf", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/vitest.config.ts:3"}, "properties": {"repobilityId": "62a5cdc932a74bb0", "scanner": "scanner-primary", "fingerprint": "badabba4316fa8cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-361252ea2a1cd36c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/test/fakes.ts:757"}, "properties": {"repobilityId": "2f5bd25f935594ac", "scanner": "scanner-primary", "fingerprint": "361252ea2a1cd36c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7bad13a7445b580e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/src/index.ts:40"}, "properties": {"repobilityId": "20f45d2165b56fd4", "scanner": "scanner-primary", "fingerprint": "7bad13a7445b580e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}]}]}