ISS-159 — display-only change in components/RightPane.tsx: new exported visibleOpenPackages(state) replaces the bare status === 'open' filter at the open-package list. A row is hidden while no GROUNDED plane sits at the package's origin, so jobs whose only claimant is still en route disappear from the list and reappear on landing. Payload-blocked rows (grounded plane at the origin with no room) stay visible with their disabled Load button — loadEligiblePlanes untouched.
Deliberately NOT touched:poolAirports / the spawner in lib/game/state.ts — shared with job spawning (engine.ts) and deliberately includes flying planes' destinations so work waits for you on landing; changing it would alter world state, not just display. The v0.65.0 server-side pool visibility filter is unchanged too.
Known pre-existing gap (NOT fixed here):loadEligiblePlanes ignores plane ownership per the v1.4.0 shared-market design — another player's grounded plane at an origin can make Load enabled for you → 403 on click.
Tests
Unit: new visibleOpenPackages suite in components/right-pane.test.ts (grounded at origin → visible; only flying there → hidden; grounded elsewhere + one flying to the origin → hidden; payload-blocked grounded plane at origin → still visible with Load disabled). 41 files / 449 tests pass.
E2E: new test in e2e/right-pane.spec.ts — dispatches the only plane toward an airport, creates a job AT that destination (in the pool while airborne, so it reaches /api/state), asserts no row renders until landing. This pins the NEW client-side filter specifically: a job at the departure airport would already be hidden server-side by v0.65.0 pool visibility once the plane leaves, so the destination is where only this change has an effect. No landing wait; the next test's flyHomeViaApi self-heal finishes the leg.
Local verification: tsc --noEmit clean, npx vitest run 41 files / 449 tests pass, npx playwright test --list → 68 tests in 18 files. Full e2e suite runs in CI only (per AGENTS.md).
ISS-159 — display-only change in `components/RightPane.tsx`: new exported `visibleOpenPackages(state)` replaces the bare `status === 'open'` filter at the open-package list. A row is hidden while no GROUNDED plane sits at the package's origin, so jobs whose only claimant is still en route disappear from the list and reappear on landing. Payload-blocked rows (grounded plane at the origin with no room) stay visible with their disabled Load button — `loadEligiblePlanes` untouched.
**Deliberately NOT touched:** `poolAirports` / the spawner in `lib/game/state.ts` — shared with job spawning (`engine.ts`) and deliberately includes flying planes' destinations so work waits for you on landing; changing it would alter world state, not just display. The v0.65.0 server-side pool visibility filter is unchanged too.
**Known pre-existing gap (NOT fixed here):** `loadEligiblePlanes` ignores plane ownership per the v1.4.0 shared-market design — another player's grounded plane at an origin can make Load enabled for you → 403 on click.
## Tests
- Unit: new `visibleOpenPackages` suite in `components/right-pane.test.ts` (grounded at origin → visible; only flying there → hidden; grounded elsewhere + one flying to the origin → hidden; payload-blocked grounded plane at origin → still visible with Load disabled). 41 files / 449 tests pass.
- E2E: new test in `e2e/right-pane.spec.ts` — dispatches the only plane toward an airport, creates a job AT that destination (in the pool while airborne, so it reaches `/api/state`), asserts no row renders until landing. This pins the NEW client-side filter specifically: a job at the departure airport would already be hidden server-side by v0.65.0 pool visibility once the plane leaves, so the destination is where only this change has an effect. No landing wait; the next test's `flyHomeViaApi` self-heal finishes the leg.
- Local verification: `tsc --noEmit` clean, `npx vitest run` 41 files / 449 tests pass, `npx playwright test --list` → 68 tests in 18 files. Full e2e suite runs in CI only (per AGENTS.md).
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.
ISS-159 — display-only change in
components/RightPane.tsx: new exportedvisibleOpenPackages(state)replaces the barestatus === 'open'filter at the open-package list. A row is hidden while no GROUNDED plane sits at the package's origin, so jobs whose only claimant is still en route disappear from the list and reappear on landing. Payload-blocked rows (grounded plane at the origin with no room) stay visible with their disabled Load button —loadEligiblePlanesuntouched.Deliberately NOT touched:
poolAirports/ the spawner inlib/game/state.ts— shared with job spawning (engine.ts) and deliberately includes flying planes' destinations so work waits for you on landing; changing it would alter world state, not just display. The v0.65.0 server-side pool visibility filter is unchanged too.Known pre-existing gap (NOT fixed here):
loadEligiblePlanesignores plane ownership per the v1.4.0 shared-market design — another player's grounded plane at an origin can make Load enabled for you → 403 on click.Tests
visibleOpenPackagessuite incomponents/right-pane.test.ts(grounded at origin → visible; only flying there → hidden; grounded elsewhere + one flying to the origin → hidden; payload-blocked grounded plane at origin → still visible with Load disabled). 41 files / 449 tests pass.e2e/right-pane.spec.ts— dispatches the only plane toward an airport, creates a job AT that destination (in the pool while airborne, so it reaches/api/state), asserts no row renders until landing. This pins the NEW client-side filter specifically: a job at the departure airport would already be hidden server-side by v0.65.0 pool visibility once the plane leaves, so the destination is where only this change has an effect. No landing wait; the next test'sflyHomeViaApiself-heal finishes the leg.tsc --noEmitclean,npx vitest run41 files / 449 tests pass,npx playwright test --list→ 68 tests in 18 files. Full e2e suite runs in CI only (per AGENTS.md).