{"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-59747f9675e5b001", "name": "TODO/FIXME marker in shipping code \u2014 packages/approach-viz-core-wasm/approach_viz_core.js:575", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/approach-viz-core-wasm/approach_viz_core.js:575"}, "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-12a8eec479bbdfbe", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-db.ts:386", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-db.ts:386"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-515047b5575acf75", "name": "TODO/FIXME marker in shipping code \u2014 public/approach_viz_core.js:575", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/approach_viz_core.js:575"}, "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-5558b93fd549bac7", "name": "Insecure pattern 'node_child_process' in scripts/dev-with-ddtrace.mjs:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/dev-with-ddtrace.mjs:3"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-6ee8355648c1864f", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-e1cc029f9f77008e", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-a4cbb752ca0d8c68", "name": "Very large file: services/runtime-rs/src/weather/processor.rs (1553 lines)", "shortDescription": {"text": "Very large file: services/runtime-rs/src/weather/processor.rs (1553 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-ef6cd015be573f35", "name": "Very large file: services/runtime-rs/src/weather/phase_batch.rs (1236 lines)", "shortDescription": {"text": "Very large file: services/runtime-rs/src/weather/phase_batch.rs (1236 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "9 test file(s) for 152 source file(s) (ratio 0.06). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 7 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-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-2679282aa1c484b5", "name": "Agent authority lacks a verifier contract: AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6542c5fab95cde46", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/approach-viz-core-wasm/approach_viz_core.js:843", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/approach-viz-core-wasm/approach_viz_core.js:843"}, "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-5b8cea69c2ecd8d1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/faa-plate/route.ts:26", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/faa-plate/route.ts:26"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-102bb6eaacd7cba8", "name": "Commented-code block (6 lines) in app/app-client/SceneCanvas.tsx:117", "shortDescription": {"text": "Commented-code block (6 lines) in app/app-client/SceneCanvas.tsx:117"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4c481da97bb49b0", "name": "Commented-code block (8 lines) in app/scene/ChartMapSurface.tsx:40", "shortDescription": {"text": "Commented-code block (8 lines) in app/scene/ChartMapSurface.tsx:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c8ca355b03a7c13", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/scene/SatelliteSurface.tsx:325", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/scene/SatelliteSurface.tsx:325"}, "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-53eb6755140e5d3f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/scene/traffic/traffic.worker.ts:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/scene/traffic/traffic.worker.ts:59"}, "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-27465dda642f8d44", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/scene/chart/chart-tiles.worker.ts:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/scene/chart/chart-tiles.worker.ts:56"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4552e007b9bc1aa0", "name": "Commented-code block (6 lines) in app/scene/shared/comlinked-worker-client.ts:80", "shortDescription": {"text": "Commented-code block (6 lines) in app/scene/shared/comlinked-worker-client.ts:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0bc2de69e77af319", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/scene/nexrad/nexrad.worker.ts:132", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/scene/nexrad/nexrad.worker.ts:132"}, "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-ea33d96e4bcabd5e", "name": "Commented-code block (5 lines) in app/scene/nexrad/nexrad-render.ts:70", "shortDescription": {"text": "Commented-code block (5 lines) in app/scene/nexrad/nexrad-render.ts:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d45ab3e3ba7f53a2", "name": "Commented-code block (6 lines) in scripts/build-db.ts:113", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/build-db.ts:113"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc837406ccdc189d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 sw/service-worker.ts:111", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sw/service-worker.ts:111"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cd747813f2466cff", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/approach_viz_core.js:843", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/approach_viz_core.js:843"}, "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/24198"}, "properties": {"repository": "andyfangdz/approach-viz", "repoUrl": "https://github.com/andyfangdz/approach-viz", "branch": "main"}, "results": [{"ruleId": "scanner-59747f9675e5b001", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/approach-viz-core-wasm/approach_viz_core.js:575"}, "properties": {"repobilityId": "473353ac94c9bb73", "scanner": "scanner-primary", "fingerprint": "59747f9675e5b001", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-12a8eec479bbdfbe", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-db.ts:386"}, "properties": {"repobilityId": "f20b279647cea1f0", "scanner": "scanner-primary", "fingerprint": "12a8eec479bbdfbe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-515047b5575acf75", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/approach_viz_core.js:575"}, "properties": {"repobilityId": "344aeaa00acef421", "scanner": "scanner-primary", "fingerprint": "515047b5575acf75", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5558b93fd549bac7", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/dev-with-ddtrace.mjs:3"}, "properties": {"repobilityId": "474d0ad18006fb22", "scanner": "scanner-primary", "fingerprint": "5558b93fd549bac7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dev-with-ddtrace.mjs"}, "region": {"startLine": 3}}}]}, {"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-6ee8355648c1864f", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "73ae35b56ec8c8af", "scanner": "scanner-primary", "fingerprint": "6ee8355648c1864f", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/parser-tests.yml"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-6ee8355648c1864f", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f2a625b343030dc0", "scanner": "scanner-primary", "fingerprint": "6ee8355648c1864f", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/parser-tests.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-6ee8355648c1864f", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "73ae35b56ec8c8af", "scanner": "scanner-primary", "fingerprint": "6ee8355648c1864f", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/parser-tests.yml"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-6ee8355648c1864f", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ff9818a99162e99d", "scanner": "scanner-primary", "fingerprint": "6ee8355648c1864f", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/parser-tests.yml"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-6ee8355648c1864f", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f80a97505915d429", "scanner": "scanner-primary", "fingerprint": "6ee8355648c1864f", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/parser-tests.yml"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-e1cc029f9f77008e", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "cdd110223c1e121a", "scanner": "scanner-primary", "fingerprint": "e1cc029f9f77008e", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/macos-native.yml"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-e1cc029f9f77008e", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5a8103795543ca6a", "scanner": "scanner-primary", "fingerprint": "e1cc029f9f77008e", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/macos-native.yml"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-e1cc029f9f77008e", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "77ac8595208bac40", "scanner": "scanner-primary", "fingerprint": "e1cc029f9f77008e", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/macos-native.yml"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-e1cc029f9f77008e", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "db531169ae9af49d", "scanner": "scanner-primary", "fingerprint": "e1cc029f9f77008e", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/macos-native.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-a4cbb752ca0d8c68", "level": "note", "message": {"text": "Very large file: services/runtime-rs/src/weather/processor.rs (1553 lines)"}, "properties": {"repobilityId": "66479461a6649f1f", "scanner": "scanner-primary", "fingerprint": "a4cbb752ca0d8c68", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ef6cd015be573f35", "level": "note", "message": {"text": "Very large file: services/runtime-rs/src/weather/phase_batch.rs (1236 lines)"}, "properties": {"repobilityId": "81771839d2b2eb15", "scanner": "scanner-primary", "fingerprint": "ef6cd015be573f35", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "7f12aaef1dd7d965", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "07f51c38c2b24a49", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-2679282aa1c484b5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: AGENTS.md"}, "properties": {"repobilityId": "27d579812e6be614", "scanner": "scanner-primary", "fingerprint": "2679282aa1c484b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6542c5fab95cde46", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/approach-viz-core-wasm/approach_viz_core.js:843"}, "properties": {"repobilityId": "c0003d1b266ed141", "scanner": "scanner-primary", "fingerprint": "6542c5fab95cde46", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5b8cea69c2ecd8d1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/faa-plate/route.ts:26"}, "properties": {"repobilityId": "7dc8ecccbcb40a27", "scanner": "scanner-primary", "fingerprint": "5b8cea69c2ecd8d1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-102bb6eaacd7cba8", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/app-client/SceneCanvas.tsx:117"}, "properties": {"repobilityId": "c5d368ad8aa11f20", "scanner": "scanner-primary", "fingerprint": "102bb6eaacd7cba8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4c481da97bb49b0", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/scene/ChartMapSurface.tsx:40"}, "properties": {"repobilityId": "c322cc3b5982fbd0", "scanner": "scanner-primary", "fingerprint": "f4c481da97bb49b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c8ca355b03a7c13", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/scene/SatelliteSurface.tsx:325"}, "properties": {"repobilityId": "730f1e39a9c419fb", "scanner": "scanner-primary", "fingerprint": "3c8ca355b03a7c13", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-53eb6755140e5d3f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/scene/traffic/traffic.worker.ts:59"}, "properties": {"repobilityId": "3814263bba132a2a", "scanner": "scanner-primary", "fingerprint": "53eb6755140e5d3f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-27465dda642f8d44", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/scene/chart/chart-tiles.worker.ts:56"}, "properties": {"repobilityId": "a324bfdb6c2bccda", "scanner": "scanner-primary", "fingerprint": "27465dda642f8d44", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4552e007b9bc1aa0", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/scene/shared/comlinked-worker-client.ts:80"}, "properties": {"repobilityId": "234daded943b213f", "scanner": "scanner-primary", "fingerprint": "4552e007b9bc1aa0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bc2de69e77af319", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/scene/nexrad/nexrad.worker.ts:132"}, "properties": {"repobilityId": "d1eb61674405a954", "scanner": "scanner-primary", "fingerprint": "0bc2de69e77af319", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ea33d96e4bcabd5e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/scene/nexrad/nexrad-render.ts:70"}, "properties": {"repobilityId": "ecb619077592b068", "scanner": "scanner-primary", "fingerprint": "ea33d96e4bcabd5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d45ab3e3ba7f53a2", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/build-db.ts:113"}, "properties": {"repobilityId": "f2ff8f45885c619f", "scanner": "scanner-primary", "fingerprint": "d45ab3e3ba7f53a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc837406ccdc189d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sw/service-worker.ts:111"}, "properties": {"repobilityId": "6545e4c17290f7f5", "scanner": "scanner-primary", "fingerprint": "bc837406ccdc189d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cd747813f2466cff", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/approach_viz_core.js:843"}, "properties": {"repobilityId": "6345759808a8b07d", "scanner": "scanner-primary", "fingerprint": "cd747813f2466cff", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}]}]}