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)
Market row: select grounded plane + destination → click Relocate → poll state until flying with the chosen destIcao
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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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-circlespaint: 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-planeselect of grounded planes +airport-popup-relocate"Relocate here" button (orairport-popup-no-planesmessage); wired viapopup.getElement().querySelector(...)after.addTo(map); POSTs/api/planes/{id}/fly {destIcao}with inline status feedbackapplySnapshotas a prop (mirrors the existing stateRef pattern)Part 3 — market row + e2e (
008a77e)relocate-planeselect (grounded planes),relocate-destselect (airports from a one-time/api/airportsfetch, sorted by name),relocate-gobutton → existingrunAction(fly)No API change:
flyPlanealready 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}/flyuntouched; OpenAPI unchanged.E2E (new
e2e/relocation.spec.ts, 2 tests)Both self-heal (fly home via API) in cleanup; SCALE=1000 per suite conventions.
Version
package.json→ 0.18.0;CHANGELOG.mdentry at topChecks (local)
tsc --noEmitclean; unit 279/279 green (no lib changes —actions.test.tsalready covers flying with zero packages);playwright test --list= 38 tests in 11 files