Files
Mavis 9e76ec9328
CI / Lint, typecheck, test, build (pull_request) Failing after 9s
Phase 2: 3D live map driven by API WebSocket
- apps/live-map/src/hooks/useLiveState.ts: WebSocket subscription
  with exponential-backoff reconnect, polling fallback, status tracking
- apps/live-map/src/scene/Scene.tsx: refactored Three.js scene with
  per-frame orbit propagation, vessel marker color-coding by owner,
  orbit-line visibility tied to focus filters, smooth camera follow
  on selected vessel/body
- apps/live-map/src/scene/layout.ts: bodyPositionAt / vesselPositionAt
  helpers (heliocentric frame, walk up the parent chain), logScale
  helpers for the system view
- apps/live-map/src/scene/color.ts: per-body and per-owner color maps
- apps/live-map/src/panels/TimeControls.tsx: play/pause/reverse/reset
  buttons, ×1/×10/×100/×1k/×10k/×100k speeds, UT scrub slider,
  live-edge indicator (LIVE / Nh behind / Nh ahead)
- apps/live-map/src/panels/VesselList.tsx: vessel sidebar with click-
  to-track; color-coded by owner (KASA=blue, SPES=orange)
- apps/live-map/src/panels/FocusPanel.tsx: planet/moon/vessel orbit
  visibility toggles
- apps/live-map/src/panels/StatusPill.tsx: WS status (LIVE/POLLING/
  OFFLINE/STALE), body + vessel + message counts
- tests/scene.test.ts: 10 tests for layout helpers (periodicity,
  vessel-centered positioning, logScale round-trips)

End-to-end verified: mock publisher → API → live-map WebSocket →
scene re-renders with the new vessel positions and orbits.
2026-06-02 19:18:22 +00:00

33 lines
847 B
JSON

{
"name": "@kerbal-rt/live-map",
"version": "0.1.0",
"private": true,
"type": "module",
"description": "3D real-time solar system viewer",
"scripts": {
"dev": "vite --port 3001",
"build": "tsc --noEmit && vite build",
"preview": "vite preview --port 3001",
"typecheck": "tsc --noEmit",
"lint": "echo 'no linter yet'",
"test": "vitest run"
},
"dependencies": {
"@kerbal-rt/shared-types": "workspace:*",
"@kerbal-rt/orbital-math": "workspace:*",
"@kerbal-rt/ui": "workspace:*",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"three": "^0.169.0"
},
"devDependencies": {
"@types/react": "^18.3.5",
"@types/react-dom": "^18.3.0",
"@types/three": "^0.169.0",
"@vitejs/plugin-react": "^4.3.1",
"typescript": "^5.6.2",
"vite": "^5.4.6",
"vitest": "^2.1.1"
}
}