Commit Graph

59 Commits

Author SHA1 Message Date
fireshaper 55c5e3c2c7 Step 16.9: plan amendments and regression
CI / check (push) Successful in 6m22s Details
Applies CR-016's amendments to the implementation plan (eight
locations, the deferred list, content, map art, goods, fuel and balance
notes) and documents the belt and label planning. Phase 16 is complete.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:15:24 -04:00
fireshaper 41cf145135 Deploy: serve plain HTTP behind Nginx Proxy Manager
CI / check (push) Successful in 6m11s Details
Caddy listens on port 80 inside the container (the Caddyfile had moved
it to 8080, which the port mapping didn't reach). NPM handles the domain
and HTTPS, so compose publishes only HTTP_PORT (default 8080) and drops
the HTTPS ports, certificate volumes and SITE_ADDRESS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 12:03:57 -04:00
fireshaper 7a061d0e40 Step 15.7: client: fuel in the UI
CI / check (push) Successful in 5m50s Details
Ship cards show a fuel gauge and refuel policy, with a Fuel sheet to
fill or buy an amount, switch policy, and order emergency fuel when it
is offered. The dispatch sheet and deadhead picker show fuel needed,
on board and left after, price fuel at the tank's average, and offer
"Refuel here first". Locations show fuel prices with the cheapest
marked, and delivery summaries list Auto top-ups.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 01:50:33 -04:00
fireshaper 201f25a935 Step 15.6: engine: fuel commands
CI / check (push) Successful in 5m50s Details
Refuel a ship where it is (fill or an amount, at the local price),
switch its refuel policy, and order emergency fuel when the sim offers
it (fuel at 2.5x the local price, cost added to the loan). The save
fields and migration landed in Step 15.4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 01:41:18 -04:00
fireshaper 63192f9129 Step 15.5: sim: stranding and emergency fuel
CI / check (push) Has been cancelled Details
The no-strand rule now asks whether the ship could leave the
destination on a full tank where fuel is sold, or on what is left
after the leg where it isn't. Emergency fuel is offered to an idle
ship that can't reach anywhere when the player can't afford the
shortfall: the cheapest leg's fuel at 2.5x the local price.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 01:37:05 -04:00
fireshaper 276cdbe611 Step 15.4: sim: tank, burn, and refuel
CI / check (push) Has been cancelled Details
Ships carry fuel: a leg burns from the tank at departure (no credits),
dispatch needs the fuel on board (not-enough-fuel), a leg's fuel cost
is fuel burned x the tank's average price, and Auto top-up refills on
landing with what the credits cover. The save gains tank fields (save
version 2, migration fills every tank). Market ships arrive full; the
deal's ships come with a quarter tank to keep the balance targets.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 01:32:09 -04:00
fireshaper c627bb9954 Step 15.3: content: fuel
CI / check (push) Successful in 5m43s Details
Ships get a tank capacity and a burn rate instead of range and fuel
cost; locations get a fixed fuel price and a sellsFuel flag instead of
the launch cost multiplier. A leg burns burn rate x the economic
distance of (distance / origin factor), and reach is a full tank's
worth. Tanks are sized so every reach answer is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 01:05:13 -04:00
fireshaper d6bca5b1a2 Step 15.1: content: fixed positions
CI / check (push) Successful in 7m40s Details
Locations get fixed polar coordinates (the Moon as an offset from
Earth) and astronomy-engine is removed, so positions now come from
content. Ranges move into CR-015's reach bands for the fixed distances,
and the Lighter's price drops to 36,000 to keep the balance targets.
Date-sampled tests become yes/no.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:43:09 -04:00
fireshaper 0125af2086 Step 14.11: retire the server
CI / check (push) Successful in 6m6s Details
Removes apps/server (Fastify, Drizzle, pg-boss, Better Auth), the
development Postgres, the backup code routes, the web HTTP client and
the CI database service. Deployment is static hosting with Caddy. A
Playwright test checks that the production build loads only its own
files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 23:50:05 -04:00
fireshaper 30aa4cd5bd Step 14.10: export and import save
CI / check (push) Successful in 7m40s Details
Export save turns the whole save into one code (gzip + base64url
behind a DEADHEAD1. prefix) to copy or share as a file; Import save
takes a pasted code or a file, migrates and validates it, and replaces
the company after confirmation. A bad code is refused and changes
nothing. These replace the backup code. Debug info now gives the save
id, save version and storage type.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 20:48:57 -04:00
fireshaper f53ed1657b Step 14.9: local notifications
CI / check (push) Successful in 7m46s Details
The engine derives the notification schedule from the save after every
saved change (arrivals, rest ending, upgrades; same-minute events
combined) and replaces the platform's schedule. Capacitor
LocalNotifications on iOS/Android, a no-op on the web. Permission is
asked after the deal; Settings has an On/Off toggle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 20:35:15 -04:00
fireshaper 4c165b9b16 Step 14.7: the client runs the game on the device
CI / check (push) Has been cancelled Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 20:25:00 -04:00
fireshaper 29f64f1ac2 Step 14.6: resolution loop
CI / check (push) Successful in 8m6s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:42:41 -04:00
fireshaper 9dd557f7c0 Step 14.5: port the game logic to engine commands
CI / check (push) Has been cancelled Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:38:25 -04:00
fireshaper b100e8664b Step 14.3: save storage with rotating backups
CI / check (push) Has been cancelled Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:16:39 -04:00
fireshaper c473580c56 Step 14.2: save document schema and migrations
CI / check (push) Has been cancelled Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:14:21 -04:00
fireshaper 6cdffa2a43 Step 14.1: engine package and device clock
CI / check (push) Has been cancelled Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:11:20 -04:00
fireshaper e3829bb8a1 Developer tools for pilots, ships and discovery
CI / check (push) Successful in 7m29s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 21:47:08 -04:00
fireshaper bd89c4cb58 Step 13.3: nightly database backups
CI / check (push) Has been cancelled Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 17:53:54 -04:00
fireshaper c2f42b1541 Step 13.2: Caddy serves the app and proxies the API
CI / check (push) Has been cancelled Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 17:47:23 -04:00
fireshaper 5c9534036f Step 13.1: containerize the server
CI / check (push) Has been cancelled Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 17:41:14 -04:00
fireshaper c02126c908 Step 12.1: balance simulation, economic distance and reachable first contact
CI / check (push) Successful in 6m17s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 19:16:32 -04:00
fireshaper 9b45a239a5 Step 11.2: offline shell behaviour
CI / check (push) Successful in 6m11s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 18:13:31 -04:00
fireshaper 979a1ad1a8 Step 10M.2: goals for a Market purchase and a Priority delivery
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 11:43:38 -04:00
fireshaper 60e29f7b1d Step 10L.3: no-strand rule
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 01:27:41 -04:00
fireshaper c15b5ef74e Step 10K.11: developer tools in non-production builds
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 00:05:58 -04:00
fireshaper 5030341eb7 Step 10K.10: About section with version, build and debug info
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 00:00:37 -04:00
fireshaper 69cc5ff3a7 Step 10K.8: backup codes and restore on the server
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:44:52 -04:00
fireshaper 531bb77fea Step 10K.6: start a new company on the server
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:32:47 -04:00
fireshaper 5f202884af Step 10K.5: rename company, and seeded default names
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:28:11 -04:00
fireshaper c73c9a4116 Step 10K.1: device preferences store
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 22:57:11 -04:00
fireshaper f042555502 Step 10J.6: pilot share in the dispatch sheet and delivery summaries
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 22:23:17 -04:00
fireshaper 9eae5ae64d Step 10J.4: the veteran pilot comes with the deal
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 21:42:43 -04:00
fireshaper c352936a09 Step 10I.4: upgrade tables, API ship fields and the start upgrade route
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 19:25:42 -04:00
fireshaper 5be66372d7 Step 10G.6: goods in API summaries, too-slow code and backfill migration
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:12:51 -04:00
fireshaper 07704e6732 Step 10D.4: pilot duty columns, API fields and rest route
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 21:56:39 -04:00
fireshaper 1fa7441c9f Step 10C.9: pause the map when hidden, cap resolution, pack crowds
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 19:38:52 -04:00
fireshaper 09a89b2a74 Step 10C.7: locks, HQ markers and idle badges on the map
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 19:29:01 -04:00
fireshaper 5916cf8728 Step 10C.6: sprite bodies, orbits, labels and tap targets
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 19:25:01 -04:00
fireshaper db69e0b2b1 Step 10C.4: load map art with per-asset fallback
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 19:12:09 -04:00
fireshaper 5612788c94 Step 10C.3: map style config
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 19:08:45 -04:00
fireshaper f239f452e7 Step 10C.2: generate optimized map art with sharp
CI / check (push) Successful in 3m26s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 19:07:40 -04:00
fireshaper 102c5bba91 Step 10C.1: map art manifest and content sprite keys
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 19:02:57 -04:00
fireshaper 962c0601c8 Step 10B.7: Contracts screen by location with idle-ship badges
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 15:08:48 -04:00
fireshaper 61781aa790 Step 10B.6: deliver bought ships to a chosen bay
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 15:01:11 -04:00
fireshaper a5803d31f5 Step 10B.4: serve contract boards for any discovered location
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 14:51:54 -04:00
fireshaper b3d4975111 Step 10B.3: key contract boards by location
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 14:49:05 -04:00
fireshaper aea768bebf Step 10A.6: add loan, tutorial run and goal schema and routes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 11:04:57 -04:00
fireshaper a28fe5c5cb Step 10.3: add map interactions
CI / check (push) Successful in 2m25s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 07:12:05 -04:00
fireshaper ff136377f4 Step 9.10: add empty and error states
CI / check (push) Successful in 3m3s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:20:34 -04:00