The "Refuel to full" row moved out of the Market section in the right pane and into a new Refuel<section> in the left pane, placed immediately after the Relocate section — refueling is a plane operation like relocating, not a market action (buy/sell stay in the market).
components/RightPane.tsx — removed the refuel market row + its state (refuelPlaneId) and derived values (refuelable / refuelPlane / refuelCost). Buy/sell rows, the exported pure helpers (slotsUsedFor / loadEligiblePlanes), and the per-package refuel-for-* button are untouched.
components/LeftPane.tsx — new <section data-testid="refuel-section"> with a "Refuel" heading + the row moved verbatim (same testids, labels, cost preview). Reuses LeftPane's existing grounded list and its own useGameAction (actionsBusy / runAction) → same POST /api/planes/{id}/refuel endpoint (no body = mode 'full'). No hover handlers (not a route).
Testids kept byte-identical (market-refuel, market-refuel-plane, market-refuel-cost) so all e2e locators work unchanged — same pattern as the v0.21.0 Relocate pane-move.
Tests
e2e: right-pane.spec.ts market test re-scoped (refuel now asserted to render inside [data-testid="left-pane"] before the click; cash/tank functional assertions unchanged); stale "market" titles/comments updated. panes.spec.ts gains structural assertions: Refuel heading + market-refuel present in left pane, absent from right pane.
No unit-test changes (no lib/ or endpoint change).
Verified locally
tsc --noEmit clean · vitest 288/288 passed (31 files) · npx playwright test --list = 41 tests in 12 files, no compile errors. e2e not run locally by design — CI verifies against the isolated stack.
## What changed (ISS-035 / #35)
The "Refuel to full" row moved out of the Market section in the right pane and into a new **Refuel** `<section>` in the left pane, placed immediately after the Relocate section — refueling is a plane operation like relocating, not a market action (buy/sell stay in the market).
- `components/RightPane.tsx` — removed the refuel market row + its state (`refuelPlaneId`) and derived values (`refuelable` / `refuelPlane` / `refuelCost`). Buy/sell rows, the exported pure helpers (`slotsUsedFor` / `loadEligiblePlanes`), and the per-package `refuel-for-*` button are untouched.
- `components/LeftPane.tsx` — new `<section data-testid="refuel-section">` with a "Refuel" heading + the row moved verbatim (same testids, labels, cost preview). Reuses LeftPane's existing `grounded` list and its own `useGameAction` (`actionsBusy` / `runAction`) → same `POST /api/planes/{id}/refuel` endpoint (no body = mode 'full'). No hover handlers (not a route).
- **Testids kept byte-identical** (`market-refuel`, `market-refuel-plane`, `market-refuel-cost`) so all e2e locators work unchanged — same pattern as the v0.21.0 Relocate pane-move.
## Tests
- e2e: `right-pane.spec.ts` market test re-scoped (refuel now asserted to render inside `[data-testid="left-pane"]` before the click; cash/tank functional assertions unchanged); stale "market" titles/comments updated. `panes.spec.ts` gains structural assertions: Refuel heading + `market-refuel` present in left pane, absent from right pane.
- No unit-test changes (no lib/ or endpoint change).
## Verified locally
`tsc --noEmit` clean · vitest 288/288 passed (31 files) · `npx playwright test --list` = 41 tests in 12 files, no compile errors. e2e not run locally by design — CI verifies against the isolated stack.
Closes #35
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 changed (ISS-035 / #35)
The "Refuel to full" row moved out of the Market section in the right pane and into a new Refuel
<section>in the left pane, placed immediately after the Relocate section — refueling is a plane operation like relocating, not a market action (buy/sell stay in the market).components/RightPane.tsx— removed the refuel market row + its state (refuelPlaneId) and derived values (refuelable/refuelPlane/refuelCost). Buy/sell rows, the exported pure helpers (slotsUsedFor/loadEligiblePlanes), and the per-packagerefuel-for-*button are untouched.components/LeftPane.tsx— new<section data-testid="refuel-section">with a "Refuel" heading + the row moved verbatim (same testids, labels, cost preview). Reuses LeftPane's existinggroundedlist and its ownuseGameAction(actionsBusy/runAction) → samePOST /api/planes/{id}/refuelendpoint (no body = mode 'full'). No hover handlers (not a route).market-refuel,market-refuel-plane,market-refuel-cost) so all e2e locators work unchanged — same pattern as the v0.21.0 Relocate pane-move.Tests
right-pane.spec.tsmarket test re-scoped (refuel now asserted to render inside[data-testid="left-pane"]before the click; cash/tank functional assertions unchanged); stale "market" titles/comments updated.panes.spec.tsgains structural assertions: Refuel heading +market-refuelpresent in left pane, absent from right pane.Verified locally
tsc --noEmitclean · vitest 288/288 passed (31 files) ·npx playwright test --list= 41 tests in 12 files, no compile errors. e2e not run locally by design — CI verifies against the isolated stack.Closes #35