kamilkrzywda
5268a39fe9
Merge pull request 'v0.55.0 — add favicon ( #122 )' ( #126 ) from feat/favicon into master
CI / build + unit + e2e (push) Successful in 9m52s
v0.55.0
2026-09-22 19:39:50 +02:00
kamilkrzywda
ae91bf6a5d
harden e2e getState against transient /api/state 500s (ISS-127)
CI / build + unit + e2e (pull_request) Successful in 9m55s
2026-09-22 17:29:45 +00:00
kamilkrzywda
a8c4e93dc1
fix e2e: actions.spec.ts self-heal tops tank full after reposition (retry cascade after transient 500)
CI / build + unit + e2e (pull_request) Failing after 9m33s
2026-09-22 16:42:38 +00:00
kamilkrzywda
e5693b3301
fix e2e: favicon href hash query + hover self-heal
CI / build + unit + e2e (pull_request) Failing after 10m50s
2026-09-22 16:03:21 +00:00
kamilkrzywda
dae354410f
Add favicon: white airplane on pastel blue as app/icon.svg (ISS-122)
CI / build + unit + e2e (pull_request) Failing after 12m56s
2026-09-22 15:39:04 +00:00
kamilkrzywda
d53ad41c09
Merge pull request 'v0.54.0 — long priority jobs are now always finishable ( #119 )' ( #125 ) from feat/expiry-floor into master
CI / build + unit + e2e (push) Failing after 8m47s
v0.54.0
2026-09-22 17:31:51 +02:00
kamilkrzywda
82061ed869
Clamp generated package expiry to travel time at max catalog speed + buffer so long jobs are finishable (ISS-119)
CI / build + unit + e2e (pull_request) Successful in 9m43s
2026-09-22 15:21:50 +00:00
kamilkrzywda
2a4b341a9c
Merge pull request 'v0.53.0 — antimeridian routes no longer chord across the map ( #120 )' ( #123 ) from feat/antimeridian-route into master
CI / build + unit + e2e (push) Successful in 12m43s
v0.53.0
2026-09-22 17:00:15 +02:00
kamilkrzywda
cd2c766895
Unwrap great-circle arc longitudes across the antimeridian so routes don't chord across the map (ISS-120)
CI / build + unit + e2e (pull_request) Successful in 10m58s
2026-09-22 14:48:53 +00:00
kamilkrzywda
23896b2cc4
Merge pull request 'v0.52.0 — fixed world clock at 24x (1h = 1 day): no time skip, background tick, idle-pause ( #117 )' ( #121 ) from feat/fixed-world-clock into master
...
CI / build + unit + e2e (push) Successful in 12m28s
v0.52.0 — fixed world clock at 24x (1h = 1 day): no time skip, background tick, idle-pause (#117 )
v0.52.0
2026-09-22 16:13:41 +02:00
kamilkrzywda
189a2c04eb
Fix e2e specs for fixed world clock: idle-pause expiry window, scale-1 motion settle, self-heal (ISS-117)
CI / build + unit + e2e (pull_request) Successful in 12m44s
2026-09-22 14:00:53 +00:00
kamilkrzywda
a0560ec767
Fixed world clock: no player time controls (ISS-117)
...
CI / build + unit + e2e (pull_request) Failing after 12m10s
The world always runs at WORLD_TIME_SCALE = 24 (lib/worldClock.ts). A server
background tick (instrumentation.ts -> startBackgroundTick, 1 s interval)
advances the sim with no open browser; idle-pause freezes the clock exactly
while no plane is flying or in repair. Fresh worlds start year 2000
(STARTING_CLOCK_MS in seed.ts).
- Removed: POST /api/sim + OpenAPI entry, applyTimeControls/clampTimeScale,
lib/timeScale.ts, LeftPane pause button + scale slider machinery,
ISS-057 slow-on-landing/resume in flyPlane.
- Snapshot simState is now { clockMs } only; client extrapolates at the fixed
rate between polls and freezes while idle (useSimClock).
- New test-only hook POST /api/test/set-timescale behind FLIGHT_TEST_HOOKS=1
(sibling of set-health); all e2e setScale helpers call it, afterEach restores
the world rate. E2E pause tests replaced by idle-pause assertions; sim.spec.ts
activates the world via set-health + /repair for advance/expiry tests.
2026-09-22 10:50:21 +00:00
kamilkrzywda
d31bc5d60f
Merge pull request 'v0.51.0 — spec card shows guaranteed (worst-case headwind) max range ( #99 )' ( #104 ) from feat/fuel-range-consistency into master
CI / build + unit + e2e (push) Successful in 9m11s
v0.51.0
2026-09-22 11:10:04 +02:00
kamilkrzywda
8319b2fa78
Max range display is the guaranteed (worst-case headwind) full-tank range (ISS-099, v0.51.0)
CI / build + unit + e2e (pull_request) Successful in 12m19s
2026-09-22 08:57:09 +00:00
kamilkrzywda
f01c3f417c
Merge pull request 'v0.50.0 — queued/planned route dotted line yellow-ish instead of gray ( #98 )' ( #103 ) from feat/queued-route-color into master
CI / build + unit + e2e (push) Successful in 9m11s
v0.50.0
2026-09-22 10:29:13 +02:00
kamilkrzywda
c3339f0e40
Make queued/planned route dotted line amber/gold instead of gray (ISS-098)
...
CI / build + unit + e2e (pull_request) Successful in 10m51s
Extract the queue-line color from an inline literal to exported
QUEUE_ROUTE_LINE_COLOR and retune it #64748b -> #d4a017. Dashed style
and width unchanged. Unit test pins the constant; existing e2e specs
(queue.spec.ts, relocation.spec.ts) already cover the rendering path.
2026-09-22 08:02:10 +00:00
kamilkrzywda
d215203988
Merge pull request 'v0.49.0 — airport popup Relocate works for flying planes via queue ( #96 )' ( #102 ) from feat/relocate-queue into master
CI / build + unit + e2e (push) Successful in 9m11s
v0.49.0
2026-09-22 09:48:50 +02:00
kamilkrzywda
11fc6f9d5c
Airport popup Relocate works for flying/repairing planes via queue (ISS-096, v0.49.0)
...
CI / build + unit + e2e (pull_request) Successful in 12m56s
The airport popup's Relocate row now lists ALL planes instead of only
grounded ones; the click handler picks the endpoint by the selected
plane's current status — available → /fly (unchanged), flying/repairing
→ /queue so the destination is appended to the flight queue and chains
on landing. No-planes fallback reworded to 'No planes to relocate.'
E2E +1: relocation.spec.ts dispatches the starter on a leg via API,
slows the sim to 1x, opens the popup for a different airport, selects
the flying plane and clicks Relocate here — asserts the queue contains
the clicked ICAO while the plane still flies its original destination.
2026-09-22 07:32:31 +00:00
kamilkrzywda
8f32d5bf81
Merge pull request 'v0.48.0 — show leg distance (km) on job list and on-board contracts ( #95 )' ( #100 ) from feat/leg-distance into master
CI / build + unit + e2e (push) Successful in 9m5s
v0.48.0
2026-09-22 09:10:37 +02:00
kamilkrzywda
a8233829c3
Show leg distance in km on job list and on-board contracts (ISS-095, v0.48.0)
CI / build + unit + e2e (pull_request) Successful in 10m21s
2026-09-22 06:58:05 +00:00
kamilkrzywda
bf6f1b3c95
Merge pull request 'v0.47.0 — reward: weight dominates payoff (REWARD_PER_KG 0.5→2.0) ( #90 )' ( #94 ) from feat/reward-weight into master
CI / build + unit + e2e (push) Successful in 9m0s
v0.47.0
2026-09-22 01:36:12 +02:00
kamilkrzywda
9ce8660fd2
Job reward retuned so weight dominates payoff (ISS-090, v0.47.0)
CI / build + unit + e2e (pull_request) Successful in 8m59s
2026-09-21 23:24:49 +00:00
kamilkrzywda
3dbac9c549
Merge pull request 'v0.46.0 — queue: consume-on-dispatch, chain backstops, sell guard + tests ( #88 )' ( #93 ) from feat/queue-tests-fixes into master
CI / build + unit + e2e (push) Successful in 11m40s
v0.46.0
2026-09-22 01:22:26 +02:00
kamilkrzywda
b76acbacac
fix(e2e): bound post-departure fuel burn in refuel-cost spec ( #88 )
CI / build + unit + e2e (pull_request) Successful in 9m5s
2026-09-21 23:13:21 +00:00
kamilkrzywda
479b993c09
Queue consumed on dispatch; engine chain hardened; queued planes unsellable (ISS-088)
CI / build + unit + e2e (pull_request) Failing after 12m59s
2026-09-21 22:36:01 +00:00
kamilkrzywda
76f5b6f8ce
Merge pull request 'Broken planes grounded + gradual repair (ISS-089, v0.45.0)' ( #92 ) from feat/broken-cannot-fly into master
CI / build + unit + e2e (push) Successful in 7m54s
v0.45.0
2026-09-21 23:31:08 +02:00
kamilkrzywda
1401a2f6eb
Broken planes cannot fly; repair heals gradually (ISS-089)
...
CI / build + unit + e2e (pull_request) Successful in 8m22s
- flyPlane 409s a broken plane (health <= 0) before any refuel math — fuel/cash untouched
- engine auto-chain skips chaining when a landing's wear breaks the plane (queue kept intact)
- finishRepairs heals along round(f x 100) each tick; flip to available at exactly 100 on gate pass
- repairPlane no longer jumps health to 100 — it starts the gradual heal
- REMOVED BROKEN_BURN_MULTIPLIER / conditionBurnMultiplier and all burn sites (unreachable now)
- OpenAPI + route comments reworded; unit tests reworked; e2e maintenance.spec.ts per issue
- v0.45.0
2026-09-21 21:17:51 +00:00
kamilkrzywda
0de0aaffd9
Merge pull request 'World airports + flyable job range (ISS-079, v0.44.0)' ( #91 ) from feat/world-airports into master
CI / build + unit + e2e (push) Successful in 8m41s
v0.44.0
2026-09-21 21:48:50 +02:00
kamilkrzywda
3ac7075eb0
World airport dataset + distance cap on generated jobs (ISS-079, v0.44.0)
CI / build + unit + e2e (pull_request) Successful in 11m2s
2026-09-21 19:28:44 +00:00
kamilkrzywda
320bdf3b72
Merge pull request 'Wear 10× slower — maintenance lasts longer (ISS-085, v0.43.0)' ( #87 ) from feat/wear-slowdown into master
CI / build + unit + e2e (push) Successful in 7m50s
v0.43.0
2026-09-21 18:13:30 +02:00
kamilkrzywda
dd7159c109
Wear 10× slower — maintenance lasts longer (ISS-085, v0.43.0)
CI / build + unit + e2e (pull_request) Successful in 8m4s
2026-09-21 15:59:20 +00:00
kamilkrzywda
78032a2051
Merge pull request 'Auto-refuel on leg start; all manual refueling UI + endpoint removed (ISS-082, v0.42.0)' ( #86 ) from feat/auto-refuel into master
...
CI / build + unit + e2e (push) Successful in 9m16s
Auto-refuel on leg start; manual refueling removed (ISS-082, v0.42.0)
v0.42.0
2026-09-21 17:41:57 +02:00
kamilkrzywda
64da8e67bf
Auto-refuel on dispatch; remove manual refueling UI/API/action (ISS-082, v0.42.0)
CI / build + unit + e2e (pull_request) Successful in 17m25s
2026-09-21 15:19:39 +00:00
kamilkrzywda
b2d03846f5
Merge pull request 'Queue UI fixes: grayed duplicate routes, hover trace from landing airport, grounded queue lines (ISS-077, v0.41.0)' ( #84 ) from feat/queue-ui-fixes into master
CI / build + unit + e2e (push) Successful in 9m18s
v0.41.0
2026-09-21 15:44:01 +02:00
kamilkrzywda
68cfad434b
Queue UI fixes: disable would-409 controls, hover trace from landing airport, grounded queues draw dotted lines (ISS-077, v0.41.0)
CI / build + unit + e2e (pull_request) Successful in 9m11s
2026-09-21 13:29:27 +00:00
kamilkrzywda
5d92b5edaa
Merge pull request 'Top-bar version links to CHANGELOG; on-board rows show ICAO tags (ISS-080, ISS-081, v0.40.0)' ( #83 ) from feat/topbar-changelog-link-icao-tags into master
CI / build + unit + e2e (push) Successful in 9m13s
v0.40.0
2026-09-21 15:20:08 +02:00
kamilkrzywda
4a6a8592e0
Top-bar version links to CHANGELOG.md; on-board rows show ICAO tags (ISS-080+ISS-081, v0.40.0)
CI / build + unit + e2e (pull_request) Successful in 12m13s
2026-09-21 13:07:06 +00:00
kamilkrzywda
b8f321dfd5
Merge pull request 'Maintenance: wear, broken burn +50%, repair (ISS-069, v0.39.0)' ( #78 ) from feat/maintenance into master
...
CI / build + unit + e2e (push) Successful in 9m29s
Maintenance: wear, broken burn +50%, repair (ISS-069, v0.39.0)
v0.39.0
2026-09-21 14:20:32 +02:00
kamilkrzywda
336ed4ee7c
Maintenance: distance wear, broken-state burn ×1.5, repair action (ISS-069, v0.39.0)
CI / build + unit + e2e (pull_request) Successful in 9m34s
2026-09-21 12:06:45 +00:00
kamilkrzywda
929452ca33
Merge pull request 'Reputation drives the economy: purchase/fuel discounts + better jobs (ISS-072, v0.38.0)' ( #76 ) from feat/reputation-economy into master
CI / build + unit + e2e (push) Successful in 9m4s
v0.38.0
2026-09-21 13:01:53 +02:00
kamilkrzywda
8daca54840
Reputation economy: rep-scaled buy/refuel discounts + job reward quality (ISS-072, v0.38.0)
CI / build + unit + e2e (pull_request) Successful in 9m3s
2026-09-21 10:51:22 +00:00
kamilkrzywda
0f5f3ae23e
Merge pull request 'Special jobs: data-driven registry + priority status (ISS-073, v0.37.0)' ( #75 ) from feat/special-jobs into master
...
CI / build + unit + e2e (push) Successful in 9m6s
Special jobs: data-driven registry + priority status (ISS-073, v0.37.0)
v0.37.0
2026-09-21 12:17:42 +02:00
kamilkrzywda
8ec485b93e
Harden right-pane/slow-on-landing e2e self-heal: clear leftover cargo, refuel-and-retry repositioning
CI / build + unit + e2e (pull_request) Successful in 9m4s
2026-09-21 10:08:33 +00:00
kamilkrzywda
ea740fc378
Special jobs: data-driven special-status registry with priority status (ISS-073, v0.37.0)
CI / build + unit + e2e (pull_request) Failing after 7m56s
2026-09-21 09:30:36 +00:00
kamilkrzywda
718e3a0177
Merge pull request 'Refuel-for-flight buys 150% of requirement; wind adjusts per-leg burn ±20% (ISS-071, ISS-070, v0.36.0)' ( #74 ) from feat/weather-fuel-burn into master
...
CI / build + unit + e2e (push) Failing after 12m14s
Merge feat/weather-fuel-burn: refuel ×1.5 + wind burn ±20% (ISS-071, ISS-070, v0.36.0)
v0.36.0
2026-09-21 11:03:03 +02:00
kamilkrzywda
5030fcd8b4
Wind-adjusted fuel burn ±20% + refuel-for-flight buys 150% margin (ISS-070, ISS-071, v0.36.0)
CI / build + unit + e2e (pull_request) Successful in 10m34s
2026-09-21 08:47:42 +00:00
kamilkrzywda
6d8e1ad35e
Merge pull request 'Job list shows cargo tonnage instead of count (ISS-066, v0.35.0)' ( #68 ) from fix/job-list-cargo-tonnage into master
...
CI / build + unit + e2e (push) Successful in 8m24s
Merge pull request 'Job list shows cargo tonnage instead of count (ISS-066, v0.35.0)' (#68 ) from fix/job-list-cargo-tonnage into master
v0.35.0
2026-09-21 04:58:30 +02:00
kamilkrzywda
0ac133f750
fix(e2e): hook package weight within starter payload (4 t < 4.8 t max)
CI / build + unit + e2e (pull_request) Successful in 8m21s
2026-09-21 02:50:10 +00:00
kamilkrzywda
d3038b3c7f
Job list shows cargo tonnage instead of count (ISS-066, v0.35.0)
CI / build + unit + e2e (pull_request) Failing after 10m9s
2026-09-21 02:34:20 +00:00
kamilkrzywda
847e74b7b8
Merge pull request 'Reject duplicate queue legs — same route can no longer be queued twice (ISS-065, v0.34.0)' ( #67 ) from feat/queue-duplicate-guard into master
...
CI / build + unit + e2e (push) Successful in 8m26s
Merge pull request 'Reject duplicate queue legs — same route can no longer be queued twice (ISS-065, v0.34.0)' (#67 ) from feat/queue-duplicate-guard into master
v0.34.0
2026-09-21 04:31:54 +02:00