Files
Flight-Ops/package.json
T
kamilkrzywda 82e4c64206
CI / build + unit + e2e (pull_request) Failing after 7m29s
v1.12.0 — takeoff & landing phases on the marker
Every leg gains a 10-min takeoff phase at the origin and a 10-min
landing phase at the destination, each weather-scaled up to 2x via a
monotone condition rule (Clear < Cloudy < Rain < Fog). Single
composition in lib/sim/movement.ts: BASE_PHASE_MS, phaseFactor,
MAX_PHASE_FACTOR, legPhases; arrivalTimeFor and progressAt route
through it (progress is now piecewise — hold at origin / linear cruise
/ hold at destination), so engine arrival gate, client position/fuel
recompute and the job expiry floor all agree. Phases burn no fuel.

Marker shows the current phase next to the status in the popup
(mapData derives it from departureSimTime + clockMs; new
data-testid=plane-phase sibling). plane-status keeps the raw status.

Tests: movement.test.ts (phaseFactor bounds/monotonicity, origin-vs-dest
composition, piecewise progressAt), engine.test.ts (deleted local travelMs
mirror — all ~18 fixture clocks use the real composition), seed.test.ts
(phase-inclusive expiry floor mirrors). New e2e/phases.spec.ts asserts
'taking off' at the origin gate and 'landing' at the destination gate on
EDDF→LEMD using the same legPhases boundaries as the engine.
2026-09-28 07:09:19 +00:00

31 lines
729 B
JSON

{
"name": "flight-ops",
"version": "1.12.0",
"private": true,
"scripts": {
"dev": "next dev -p 3000",
"build": "next build",
"start": "next start -p 3000",
"assets:download": "node scripts/download-map-assets.mjs",
"test": "vitest run",
"typecheck": "tsc --noEmit"
},
"dependencies": {
"drizzle-orm": "^0.45.2",
"maplibre-gl": "^6.10.0",
"next": "^16.3.5",
"react": "^19.3.0",
"react-dom": "^19.3.0",
"sql.js": "^1.14.2"
},
"devDependencies": {
"@playwright/test": "1.63.0",
"@types/node": "^22.20.3",
"@types/react": "^19.3.0",
"@types/react-dom": "^19.3.0",
"@types/sql.js": "^1.4.11",
"typescript": "^7.0.2",
"vitest": "^5.0.1"
}
}