A spy satellite simulator in your browser, except the data is real. Live open source spatial intelligence on a photorealistic 3D globe.
This report summarizes scanner evidence for bilawalsidhu/gods-eye-view, a JavaScript project with 61,892 GitHub stars. SynthScan examined 358,598 lines of code across 1212 source files, recording 731 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 2.5 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 665 finding(s).
Are imports declared and package/API names verified? 1 finding(s).
Are wrappers, guards, and repeated structures necessary? 654 finding(s).
Which changes need focused human review? 731 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 731 distinct pattern matches across 6 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | server/standalone/unwatched-cache.js | 20 | export function unwatchedRuntimeDirsPlugin() { | CODE |
| LOW | server/standalone/google-token-unavailable.js | 5 | export function googleTokenUnavailablePlugin() { | CODE |
| LOW | server/providers/local-receivers.js | 155 | async function resolveLocalReceiverAddresses(hostname, lookupImpl) { | CODE |
| LOW | server/providers/local-receivers.js | 277 | async function fetchLocalReceiverDocument( | CODE |
| LOW | server/providers/local-receivers.js | 405 | export function createLocalReceiversHandler({ | CODE |
| LOW | server/providers/military-installations.js | 39 | function militaryInstallationsProxy() { | CODE |
| LOW | server/providers/firms.js | 53 | export function isAddressSelectionFailure(err) { | CODE |
| LOW | server/providers/vessels/ais-store.js | 232 | function mergeAisStaticIntoLiveVessel(mmsi, staticData) { | CODE |
| LOW | server/providers/vessels/ais-store.js | 332 | function normalizedSpeedOverGround(value) { | CODE |
| LOW | server/providers/vessels/ais-store.js | 342 | function normalizedCourseOverGround(value) { | CODE |
| LOW | server/providers/vessels/ais-live.js | 295 | function ensureAisStreamConnection() { | CODE |
| LOW | server/providers/vessels/ais-live.js | 333 | function startAisStreamWatchdogTick() { | CODE |
| LOW | server/providers/radio/catalog.js | 48 | export function createRadioProxyMiddleware({ | CODE |
| LOW | server/providers/radio/transport.js | 97 | export async function resolveRadioProxyAddresses(hostname, lookupImpl) { | CODE |
| LOW | server/providers/gemini/request.js | 9 | export function isGeminiRequestOriginAllowed( | CODE |
| LOW | server/providers/aircraft/opensky.js | 44 | function openSkyRateLimitCooldownMs(upstream) { | CODE |
| LOW | server/providers/aircraft/opensky.js | 367 | async function fetchAdsbLolPointFallback(req) { | CODE |
| LOW | server/providers/aircraft/opensky.js | 429 | async function serveAdsbLolPointFallback(req, res, requestedMode, reason) { | CODE |
| LOW | server/providers/cctv/normalize.js | 370 | export function isLikelyCalgaryCoordinate(lat, lon) { | CODE |
| LOW | server/providers/cctv/normalize.js | 381 | export function isLikelyFloridaCoordinate(lat, lon) { | CODE |
| LOW | server/providers/cctv/normalize.js | 403 | export function isLikelyHongKongCoordinate(lat, lon) { | CODE |
| LOW | server/providers/cctv/normalize.js | 435 | export function isLikelyFinlandCoordinate(lat, lon) { | CODE |
| LOW | server/providers/cctv/normalize.js | 441 | export function isLikelyCataloniaCoordinate(lat, lon) { | CODE |
| LOW | server/providers/cctv/normalize.js | 664 | export function isLikelyTorontoCoordinate(lat, lon) { | CODE |
| LOW | server/providers/cctv/media.js | 638 | export async function fetchCctvImageFromUpstream( | CODE |
| LOW | server/providers/cctv/sources.js | 175 | export async function loadAustinSourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 279 | export async function loadCaltransSourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 402 | export async function loadTflSourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 486 | function isLikelyOntarioCoordinate(lat, lon) { | CODE |
| LOW | server/providers/cctv/sources.js | 562 | export async function loadOntarioSourcesFromOpenData( | CODE |
| LOW | server/providers/cctv/sources.js | 700 | export async function loadFintrafficSourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 852 | export async function loadDriveBcSourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 952 | export function normalizeTxdotDistrictPayload(payload, district) { | CODE |
| LOW | server/providers/cctv/sources.js | 1035 | export async function loadTxdotSourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 1101 | export function loadTallinnSourcesFromCatalog({ | CODE |
| LOW | server/providers/cctv/sources.js | 1205 | export function parseTarkteeDatexLocations(xml) { | CODE |
| LOW | server/providers/cctv/sources.js | 1265 | export async function loadTarkteeSourcesFromDatex() { | CODE |
| LOW | server/providers/cctv/sources.js | 1409 | export function loadWarendorfSourcesFromCatalog({ | CODE |
| LOW | server/providers/cctv/sources.js | 1539 | export async function loadNswSourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 1708 | export async function loadCalgarySourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 1839 | export function normalizeCataloniaImageUrl(rawUrl) { | CODE |
| LOW | server/providers/cctv/sources.js | 1936 | export async function loadCataloniaSourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 2047 | export function parseHkCameraLocationsXml(xml) { | CODE |
| LOW | server/providers/cctv/sources.js | 2183 | export async function loadHkSourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 2243 | export async function loadDelDOTSourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 2348 | function isLikelyKingCountyCoordinate(lat, lon) { | CODE |
| LOW | server/providers/cctv/sources.js | 2391 | export async function loadKingCountySourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 2542 | function isLikelyWashingtonCoordinate(lat, lon) { | CODE |
| LOW | server/providers/cctv/sources.js | 2569 | export async function loadWsdotSourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 2759 | export async function loadVegvesenSourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 2850 | export function clearKartverketHeightCache() { | CODE |
| LOW | server/providers/cctv/sources.js | 3055 | export async function applyVegvesenGroundHeights( | CODE |
| LOW | server/providers/cctv/sources.js | 3235 | export async function loadNycSourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 3392 | export async function loadTorontoSourcesFromOpenData() { | CODE |
| LOW | server/providers/cctv/sources.js | 3562 | export async function loadFloridaSourcesFromOpenData() { | CODE |
| LOW | server/providers/places/google.js | 41 | export function validatePlacesCoordinates(searchParams) { | CODE |
| LOW | server/providers/places/google-key.js | 8 | export function keylessGooglePlacesResponse(apiKey) { | CODE |
| LOW | server/providers/places/google-key.js | 23 | export function keylessGoogleGeocodeResponse(apiKey) { | CODE |
| LOW | server/providers/overpass/constants.js | 56 | function resolveOverpassUpstreamTag() { | CODE |
| LOW | server/providers/overpass/constants.js | 72 | function cachedByConfiguredUpstream(entry) { | CODE |
| 529 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/hud.js | 975 | // ── Public API ────────────────────────── | COMMENT |
| MEDIUM | src/ui/applicationShell.js | 1292 | // ── Public control facade ────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/ui/applicationShell.js | 1561 | // ── Parameter Sliders ───────────────────────── | COMMENT |
| MEDIUM | src/ui/applicationShell.js | 1574 | // ── Style switching ─────────────────────────── | COMMENT |
| MEDIUM | src/ui/applicationShell.js | 1600 | // ── Shader transitions ──────────────────────── | COMMENT |
| MEDIUM | src/ui/applicationShell.js | 1651 | // ── Share Button ───────────────────────────── | COMMENT |
| MEDIUM | src/ui/applicationShell.js | 1686 | // ── HUD Toggle ─────────────────────────────── | COMMENT |
| MEDIUM | src/layers/traffic/flow.js | 20 | // ─── Live Flow (TomTom) ──────────────────────────────────── | COMMENT |
| MEDIUM | src/layers/traffic/policy.js | 120 | // ─── Jam-viz prototype (live mode only — see 2026-07-21 design doc) ──────── | COMMENT |
| MEDIUM | src/layers/traffic/state.js | 16 | // ─── Module State ────────────────────────────────────────── | COMMENT |
| MEDIUM | src/layers/traffic/state.js | 295 | // ─── Animation ───────────────────────────────────────────── | COMMENT |
| MEDIUM | src/layers/traffic/timing.js | 22 | // ─── Development-only causal timing ─────────────────────── | COMMENT |
| MEDIUM | src/layers/traffic/viewport.js | 18 | // ─── Camera Monitoring ───────────────────────────────────── | COMMENT |
| MEDIUM | src/layers/traffic/model.js | 68 | // ─── Road Length Estimation ──────────────────────────────── | COMMENT |
| MEDIUM | src/layers/traffic/model.js | 92 | // ─── Dot Spawning ────────────────────────────────────────── | COMMENT |
| MEDIUM | src/layers/traffic/animation.js | 347 | // ─── Cleanup ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/layers/localAdsb/index.js | 345 | // ── Trail of the selected aircraft ────────────────────────────────────── | COMMENT |
| MEDIUM | src/layers/localAdsb/index.js | 401 | // ── Markers ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/layers/streetLevel/index.js | 598 | // ── Public surface used by the panel ──────────────────────────────── | COMMENT |
| MEDIUM | src/styles/thermal.js | 37 | // ── Ironbow "Predator" thermal palette ──────────────── | COMMENT |
| MEDIUM | src/styles/thermal.js | 58 | // ── Value noise (coherent, smooth, drifting) ────────── | COMMENT |
| MEDIUM | src/styles/thermal.js | 89 | // ── 7-segment digit renderer ────────────────────────── | COMMENT |
| MEDIUM | src/styles/thermal.js | 125 | // ── Crosshair ───────────────────────────────────────── | COMMENT |
| MEDIUM | src/styles/thermal.js | 135 | // ── Scale bar (right edge) ──────────────────────────── | COMMENT |
| MEDIUM⚡ | src/styles/thermal.js | 186 | // ── Luminance → temperature mapping ───────────────── | COMMENT |
| MEDIUM⚡ | src/styles/thermal.js | 193 | // ── Temperature banding (contour lines) ───────────── | COMMENT |
| MEDIUM⚡ | src/styles/thermal.js | 199 | // ── White-Hot / Black-Hot mode ────────────────────── | COMMENT |
| MEDIUM | src/styles/thermal.js | 210 | // ── Hot-spot bloom/bleed ──────────────────────────── | COMMENT |
| MEDIUM | src/styles/thermal.js | 237 | // ── Subtle motion blur feel (slight blur) ─────────── | COMMENT |
| MEDIUM | src/styles/thermal.js | 240 | // ── HUD Overlay ───────────────────────────────────── | COMMENT |
| MEDIUM | src/styles/thermal.js | 328 | // ── Lens shading + vignette ─────────────────── | COMMENT |
| MEDIUM | src/styles/surveillance.js | 33 | // ── Noise functions ─────────────────────────────────── | COMMENT |
| MEDIUM | src/styles/surveillance.js | 51 | // ── Barrel distortion (NVG lens) ────────────────────── | COMMENT |
| MEDIUM | src/styles/surveillance.js | 60 | // ── Honeycomb pattern (fiber optic plate texture) ───── | COMMENT |
| MEDIUM | src/styles/surveillance.js | 75 | // ── 7-segment digit renderer ────────────────────────── | COMMENT |
| MEDIUM | src/styles/surveillance.js | 131 | // ── Crosshair (thin, subtle NVG reticle) ────────────── | COMMENT |
| MEDIUM | src/styles/surveillance.js | 146 | // ── Barrel distortion (NVG lens distortion) ───────── | COMMENT |
| MEDIUM⚡ | src/styles/surveillance.js | 172 | // ── Intensifier tube resolution pixelation ──────────── | COMMENT |
| MEDIUM⚡ | src/styles/surveillance.js | 179 | // ── Luminance ─────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/styles/surveillance.js | 182 | // ── Auto-gain response ────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/styles/surveillance.js | 190 | // ── Intensifier tube bloom (THE key NVG visual) ───── | COMMENT |
| MEDIUM | src/styles/surveillance.js | 209 | // ── P43 phosphor green (530nm) ────────────────────── | COMMENT |
| MEDIUM | src/styles/surveillance.js | 224 | // ── Honeycomb fiber optic plate ───────────────────── | COMMENT |
| MEDIUM | src/styles/surveillance.js | 228 | // ── Scanlines (subtle, from the display) ──────────── | COMMENT |
| MEDIUM | src/styles/surveillance.js | 239 | // ── HUD Overlay ───────────────────────────────────── | COMMENT |
| MEDIUM | src/styles/surveillance.js | 272 | // ── Final composite ───────────────────────────────── | COMMENT |
| MEDIUM | src/styles/retro.js | 31 | // ── Hash for noise/randomness ───────────────────────── | COMMENT |
| MEDIUM | src/styles/retro.js | 69 | // ── Barrel distortion (CRT monitor bulge) ─────────── | COMMENT |
| MEDIUM⚡ | src/styles/retro.js | 96 | // ── Pixelation: snap UV to grid ───────────────────── | COMMENT |
| MEDIUM⚡ | src/styles/retro.js | 104 | // ── Bayer dithering before posterization ──────────── | COMMENT |
| MEDIUM⚡ | src/styles/retro.js | 110 | // ── Posterize: reduce color levels ────────────────── | COMMENT |
| MEDIUM⚡ | src/styles/retro.js | 114 | // ── Slight saturation boost ───────────────────────── | COMMENT |
| MEDIUM⚡ | src/styles/retro.js | 118 | // ── RGB shadow mask subpixel pattern ──────────────── | COMMENT |
| MEDIUM⚡ | src/styles/retro.js | 130 | // ── Block edge darkening ──────────────────────────── | COMMENT |
| MEDIUM⚡ | src/styles/retro.js | 138 | // ── Horizontal scanlines — rolling CRT refresh ────── | COMMENT |
| MEDIUM⚡ | src/styles/retro.js | 145 | // ── Phosphor persistence / ghosting ───────────────── | COMMENT |
| MEDIUM | src/styles/retro.js | 157 | // ── Glitch lines (rare horizontal bright bars) ────── | COMMENT |
| MEDIUM | src/styles/retro.js | 167 | // ── Warm phosphor tint (P1 green-amber) ───────────── | COMMENT |
| MEDIUM | src/data/tomtomTiles.js | 131 | // ─── Daily budget accounting ─────────────────────────────── | COMMENT |
| MEDIUM | src/data/cctvCards.js | 41 | // ─── Card geometry / style constants ─────────────────────────────────────── | COMMENT |
| 5 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | compose.yaml | 21 | # Bind the source so edits hot-reload and so keys pasted into the setup | COMMENT |
| LOW | server/providers/cctv.js | 461 | } catch (error) { | COMMENT |
| LOW | server/providers/aircraft/opensky.js | 101 | '[OpenSky] global snapshot attempt failed, retrying:', | COMMENT |
| LOW | scripts/dev-fresh.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | src/mapStackChips.js | 1 | // MAP STACK source chips — the always-visible replacement for the `<select>` | COMMENT |
| LOW | src/contactsDetectionPolicy.js | 1 | // src/contactsDetectionPolicy.js — Contacts-scoped detection policy. | COMMENT |
| LOW | src/firstRunExperience.js | 1 | import { createSurfaceKeyboard } from './ui/surfaceKeyboard.js'; | COMMENT |
| LOW | src/firstRunExperience.js | 101 | }), | COMMENT |
| LOW | src/sharelink.js | 241 | Math.min(100, Math.round(parseOr(params.get('ko'), 5))), | COMMENT |
| LOW | src/locations.js | 381 | return { | COMMENT |
| LOW | src/hud.js | 221 | // chunk the flight layers use — requested on the first telemetry tick of a | COMMENT |
| LOW | src/ui/panelDisclosure.js | 141 | // Focus inside the tray defers the unpinned auto-dismiss, but only for the | COMMENT |
| LOW | src/ui/panelPositionControls.js | 61 | try { | COMMENT |
| LOW | src/ui/visualSettings.js | 301 | const state = this.getDetectionState(); | COMMENT |
| LOW | src/ui/visualPresets.js | 41 | COMMENT | |
| LOW | src/ui/styles/scenes.css | 441 | #global-context-panel.collapsed .global-context-actions, | COMMENT |
| LOW | src/ui/styles/scenes.css | 461 | #param-slider-panel.collapsed #param-sliders, | COMMENT |
| LOW | src/ui/styles/scenes.css | 481 | #cctv-panel.collapsed .cctv-panel-inner, | COMMENT |
| LOW | src/ui/styles/responsive.css | 201 | #right-context-rail > #pp-toggles { | COMMENT |
| LOW | src/ui/styles/cockpit.css | 1981 | #style-indicator, | COMMENT |
| LOW | src/scenes/scenePolicy.js | 1 | // src/scenes/scenePolicy.js — pure decisions for cinematic scene playback. | COMMENT |
| LOW | src/layers/flights/records.js | 81 | } | COMMENT |
| LOW | src/layers/flights/records.js | 121 | // within metres — instantly right — and at elevated fields it is | COMMENT |
| LOW | src/layers/flights/records.js | 141 | COMMENT | |
| LOW | src/layers/flights/records.js | 161 | let renderAltitudeM; | COMMENT |
| LOW | src/layers/flights/policy.js | 21 | // and are excluded from the ambient enrichment sweep (click-to-enrich still | COMMENT |
| LOW | src/layers/flights/policy.js | 61 | // airplane.glb is transform-applied and baked to real-world meters | COMMENT |
| LOW | src/layers/flights/policy.js | 141 | // when the next poll lands. All consumers (labels, HUD, detection, | COMMENT |
| LOW | src/layers/flights/policy.js | 221 | COMMENT | |
| LOW | src/layers/flights/policy.js | 241 | // lands, _requestTypeEnrichment's callback swaps the billboard glyph + scale | COMMENT |
| LOW | src/layers/flights/tracking.js | 401 | // Live head segment: last fix → current dead-reckoned icon, updated every frame via | COMMENT |
| LOW | src/layers/flights/tracking.js | 521 | parsed.push({ lat, lon, baroAlt }); | COMMENT |
| LOW | src/layers/flights/tracking.js | 921 | // the aircraft has no fix. | COMMENT |
| LOW | src/layers/flights/motion.js | 881 | heldActive: false, | COMMENT |
| LOW | src/layers/flights/queries.js | 121 | function _describeFlight(icao24) { | COMMENT |
| LOW | src/layers/cctv/cards.js | 141 | } | COMMENT |
| LOW | src/layers/cctv/selection.js | 101 | // now the active representation; the opt-in protected-card path republishes | COMMENT |
| LOW | src/layers/cctv/selection.js | 121 | parts.geometry.runActivationObstructionProbe(record); | COMMENT |
| LOW | src/layers/cctv/lifecycle.js | 261 | coverageEntities: [], | COMMENT |
| LOW | src/layers/awareness/queries.js | 41 | // SYNCHRONOUS and the manager awaits update(), which owns the first | COMMENT |
| LOW | src/layers/satellites/tracking.js | 301 | refreshTrackedSubjectContext(metadata); | COMMENT |
| LOW | src/layers/military/records.js | 61 | // sample (_modelDisplayPosition), which is the visual on the ground, and | COMMENT |
| LOW | src/layers/military/records.js | 81 | onGround, | COMMENT |
| LOW | src/layers/military/policy.js | 41 | COMMENT | |
| LOW | src/layers/military/policy.js | 181 | // Removing the delay reintroduces the back/forward oscillation and is a | COMMENT |
| LOW | src/layers/military/snapshotRenderer.js | 181 | // Takeoff while TRACKED: ground traffic drew no trail, so start one | COMMENT |
| LOW | src/layers/military/tracking.js | 521 | } | COMMENT |
| LOW | src/layers/military/tracking.js | 641 | const lat = point.latitude, | COMMENT |
| LOW | src/layers/military/tracking.js | 881 | // aircraft has no fix. | COMMENT |
| LOW | src/layers/firms/anchors.js | 1 | // src/data/fireAnchors.js — DEM ground anchors for rendered FIRMS detections | COMMENT |
| LOW | src/overlays/worldOverlay.js | 2021 | record.placementInput.gap = entry.gapPx; | COMMENT |
| LOW | src/annotations/resolver.js | 441 | scope === 'city'; | COMMENT |
| LOW | src/annotations/resolver.js | 621 | // real enclosing polygon (e.g. "Capitol Square", leisure=park) IS in OSM but only surfaces via a | COMMENT |
| LOW | src/voice/realtimeTurns.js | 381 | // cap trips. Refuse to dispatch any NEW tool once the session is ending — | COMMENT |
| LOW | src/i18n/index.js | 1 | // God's Eye View i18n: the English source text is the message key. | COMMENT |
| LOW | src/data/geoid.js | 1 | // src/data/geoid.js — bundled EGM96 geoid-undulation lookup. | COMMENT |
| LOW | src/data/detection.js | 1241 | const renderIdentities = _labelArbiter.liveIdentities({ | COMMENT |
| LOW | src/data/renderAltitude.js | 1 | // src/data/renderAltitude.js — pure priority-chain helper for aircraft render | COMMENT |
| LOW | src/data/adminBoundaries.js | 621 | } | COMMENT |
| LOW | src/data/aisWatchdog.js | 1 | // Pure state machine for the AISStream live-feed watchdog. | COMMENT |
| 11 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | package-lock.json | 2631 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-2.0.4.tgz", | CODE |
| MEDIUM | src/orbit.js | 44 | // Start from the camera's current heading for seamless transition | COMMENT |
| MEDIUM | src/app/tools.js | 140 | // GPU. Holder/data state is untouched, so return is seamless: restore | COMMENT |
| MEDIUM | src/data/cctvLod.js | 369 | // robust distance scale or consume a bounded ambient-card slot. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.md | 505 | ├── data/ # One module per layer + orchestration + context store | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/i18n/index.js | 255 | ['data-i18n-placeholder', 'placeholder'], | CODE |