v0.18.0 — ISS-010 relocate empty planes + bigger airport markers + popup options #20

Merged
kamilkrzywda merged 5 commits from feat/plane-relocation into master 2026-09-19 18:44:57 +02:00
Owner

What (issue #10)

I want to be able to fly an empty plane to any airport so I can relocate it. Also make airport icons/dots on map bigger — they are hard to click. And popup with multiple options on selected airport.

Three parts, three commits:

Part 1 — bigger airport markers (09c1d8b)

  • airports-circles paint: circle-radius 3→5, stroke-width 1→1.5; hover highlight ring r=8→9 (paint-only change; existing map click tests are the regression gate)

Part 2 — airport popup options (3e62d63)

  • Airport popup gains a Relocate row: airport-popup-plane select of grounded planes + airport-popup-relocate "Relocate here" button (or airport-popup-no-planes message); wired via popup.getElement().querySelector(...) after .addTo(map); POSTs /api/planes/{id}/fly {destIcao} with inline status feedback
  • Map gets the shell's applySnapshot as a prop (mirrors the existing stateRef pattern)

Part 3 — market row + e2e (008a77e)

  • RightPane Market section: new relocate row — relocate-plane select (grounded planes), relocate-dest select (airports from a one-time /api/airports fetch, sorted by name), relocate-go button → existing runAction(fly)

No API change: flyPlane already allows flying a grounded plane with zero loaded packages ("pure repositioning" since v0.12.0) — the gap was purely UI. Strict unknown-field rejection on /api/planes/{id}/fly untouched; OpenAPI unchanged.

E2E (new e2e/relocation.spec.ts, 2 tests)

  1. Market row: select grounded plane + destination → click Relocate → poll state until flying with the chosen destIcao
  2. Popup options: click an airport marker, use the popup's select+button to relocate, poll state for flying+destIcao

Both self-heal (fly home via API) in cleanup; SCALE=1000 per suite conventions.

Version

  • package.json → 0.18.0; CHANGELOG.md entry at top

Checks (local)

  • tsc --noEmit clean; unit 279/279 green (no lib changes — actions.test.ts already covers flying with zero packages); playwright test --list = 38 tests in 11 files
  • e2e not run locally by design — CI verifies against the isolated stack
## What (issue #10) *I want to be able to fly an empty plane to any airport so I can relocate it. Also make airport icons/dots on map bigger — they are hard to click. And popup with multiple options on selected airport.* Three parts, three commits: **Part 1 — bigger airport markers** (`09c1d8b`) - `airports-circles` paint: circle-radius 3→5, stroke-width 1→1.5; hover highlight ring r=8→9 (paint-only change; existing map click tests are the regression gate) **Part 2 — airport popup options** (`3e62d63`) - Airport popup gains a Relocate row: `airport-popup-plane` select of grounded planes + `airport-popup-relocate` "Relocate here" button (or `airport-popup-no-planes` message); wired via `popup.getElement().querySelector(...)` after `.addTo(map)`; POSTs `/api/planes/{id}/fly {destIcao}` with inline status feedback - Map gets the shell's `applySnapshot` as a prop (mirrors the existing stateRef pattern) **Part 3 — market row + e2e** (`008a77e`) - RightPane Market section: new relocate row — `relocate-plane` select (grounded planes), `relocate-dest` select (airports from a one-time `/api/airports` fetch, sorted by name), `relocate-go` button → existing `runAction(fly)` **No API change**: `flyPlane` already allows flying a grounded plane with zero loaded packages ("pure repositioning" since v0.12.0) — the gap was purely UI. Strict unknown-field rejection on `/api/planes/{id}/fly` untouched; OpenAPI unchanged. ## E2E (new `e2e/relocation.spec.ts`, 2 tests) 1. Market row: select grounded plane + destination → click Relocate → poll state until flying with the chosen destIcao 2. Popup options: click an airport marker, use the popup's select+button to relocate, poll state for flying+destIcao Both self-heal (fly home via API) in cleanup; SCALE=1000 per suite conventions. ## Version - `package.json` → **0.18.0**; `CHANGELOG.md` entry at top ## Checks (local) - `tsc --noEmit` clean; unit 279/279 green (no lib changes — `actions.test.ts` already covers flying with zero packages); `playwright test --list` = 38 tests in 11 files - e2e not run locally by design — CI verifies against the isolated stack
kamilkrzywda added 3 commits 2026-09-19 18:10:23 +02:00
kamilkrzywda added 1 commit 2026-09-19 18:23:06 +02:00
test: fix POPUP_AIRPORT scoping in relocation popup e2e
CI / build + unit + e2e (pull_request) Failing after 6m49s
8852ae11f2
kamilkrzywda added 1 commit 2026-09-19 18:35:21 +02:00
test: target the plane option specifically in relocation popup e2e
CI / build + unit + e2e (pull_request) Successful in 7m32s
337eda2743
kamilkrzywda merged commit f0602453ea into master 2026-09-19 18:44:57 +02:00
kamilkrzywda deleted branch feat/plane-relocation 2026-09-19 18:44:57 +02:00
Sign in to join this conversation.