Commit Graph

210 Commits

Author SHA1 Message Date
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 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 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 2bbcaa4d05 Allow deadhead.belowland.com as a Vite dev and preview host
CI / check (push) Successful in 7m58s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 16:54:57 -04:00
fireshaper 1c115a7465 Step 12.6: end-to-end: pilot progression
CI / check (push) Successful in 7m4s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 19:37:16 -04:00
fireshaper 5e8b5b45e4 Step 12.5: end-to-end: discovery
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 19:37:16 -04:00
fireshaper 2dbbe23332 Step 12.4: end-to-end: offline progress
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 19:37:16 -04:00
fireshaper e3ac95f23f Step 12.3: end-to-end: tutorial to first ship
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 19:37:15 -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 feb84aecaa Step 11.1: installable PWA
CI / check (push) Successful in 6m11s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 17:53:56 -04:00
fireshaper f78b488baa Step 10M.4: deal modal lists the Clipper and the veteran
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 11:57:45 -04:00
fireshaper 256fb7c464 Step 10M.3: the deal hands over the veteran's Clipper
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 11:53:50 -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 b8ff9ba47a Step 10M.1: veteran skill and deal loan from content
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 11:34:23 -04:00
fireshaper 264a933703 Step 10L.10: Lighter and Clipper art
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 02:04:41 -04:00
fireshaper 05e7fbc535 Step 10L.9: stranding reason in the dispatch sheet and deadhead picker
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 01:57:12 -04:00
fireshaper 0658c9984d Step 10L.8: map reachability per origin
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 01:52:44 -04:00
fireshaper 750ce54b7d Step 10L.7: Market shows roles and reach
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 01:48:09 -04:00
fireshaper 6bd358b52d Step 10L.6: would-strand on the server, buying the new ships
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 01:43:03 -04:00
fireshaper 8d8df71ba9 Step 10L.5: upgrade caps for the new lineup
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 01:38:50 -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 0a0189b3e7 Step 10L.2: effective range from origin
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 01:18:50 -04:00
fireshaper faa23d2945 Step 10L.1: range factors, Lighter and Clipper
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 01:11:05 -04:00
fireshaper e1ce7ee7d0 CR-012: record lighter, clipper and per-leg range change request
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 00:59:33 -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 106d44d384 Step 10K.9: backup and restore screens
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:49:55 -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 29653e2fdc Step 10K.7: rename and start-over flows in Settings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:36:35 -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 bc29c515eb Step 10K.4: reset map view and show tips again
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:21:39 -04:00
fireshaper 621eecb737 Fix the header on phones: credits and clock no longer overlap
CI / check (push) Successful in 4m37s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:17:41 -04:00
fireshaper 754242dde6 Step 10K.3: clock, countdown and reduced-motion settings applied everywhere
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:11:34 -04:00
fireshaper 74cc29c8e3 Step 10K.2: settings screen behind a header gear
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:01:02 -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 8cafa50027 Step 10J.5: the veteran in the deal modal and on the Pilots screen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 22:14:16 -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 8acc81bc10 Step 10J.3: goal 4 becomes flying a contract with the veteran
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 21:35:20 -04:00
fireshaper cb54165c90 Step 10J.2: profit-share pilot pay in resolution
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 21:28:56 -04:00
fireshaper 3bf8bc4eaa Step 10I.8: shop news in the away summary and on HQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 19:43:13 -04:00
fireshaper b5f2801076 Step 10I.7: effective ship stats across the client
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 19:38:51 -04:00
fireshaper e205194758 Step 10I.6: upgrade shop on the Fleet screen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 19:34:31 -04:00
fireshaper f81a8e41ef Step 10I.5: start upgrades on the server
CI / check (push) Successful in 4m50s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 19:31:37 -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 0338d5fdbe Step 10I.3: upgrade validation, cost and the ship-in-shop check
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 19:17:42 -04:00
fireshaper e924defb79 Step 10H.3: announce new contracts and tag them New
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 18:06:02 -04:00
fireshaper edbe31593b Step 10G.11: CR-007 plan amendments, regression and review screenshots
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:27:04 -04:00
fireshaper 66425753c4 Step 10G.10: delivery summaries name the good, mass and shipper
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:21:52 -04:00
fireshaper e96cd6ab2b Step 10G.9: Priority trip vs window in the dispatch sheet
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:20:17 -04:00
fireshaper 8945972372 Step 10G.8: contract cards headline the good, with class, Priority and too-slow chips
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:17:21 -04:00
fireshaper 4f8ee4a06d Step 10G.7: server tests for Priority dispatch and goods on boards
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:13:32 -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 f8d2f538ca Step 10G.4: Priority contracts fail too-slow ships
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:04:55 -04:00
fireshaper 13f5b04ffb Step 10G.2: contracts carry goods, shippers and Priority fields
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 16:59:00 -04:00
fireshaper 8a7b612bc7 Step 10G.1: goods catalog, shippers and Priority config
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 16:53:17 -04:00
fireshaper 540690590c Logbook: show deadheads as an empty flight with fuel, not +0 cr
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 12:36:15 -04:00
fireshaper 82acf0e637 Step 10F.4: location boards use the player's fleet
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 12:19:19 -04:00
fireshaper bd2d2df14d Step 10F.1: highlight jobs too heavy for your ships
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 12:15:04 -04:00
fireshaper 81e71e8436 Config: 10-minute board period and 10-hour rest
CI / check (push) Successful in 4m25s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 00:13:49 -04:00
fireshaper c11d52f96f Step 10E.8: locations, map panels, title screen and dialogs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:51:00 -04:00
fireshaper 45a21a8684 Step 10E.7: pilot cards with skills, XP and duty
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:47:22 -04:00
fireshaper 6d5ea7cb48 Step 10E.6: fleet and market with ship art
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:45:23 -04:00
fireshaper 939ee45943 Step 10E.5: contracts, tutorial board and dispatch sheet
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:42:25 -04:00
fireshaper a69ffcc434 Step 10E.4: HQ dashboard
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:37:28 -04:00
fireshaper 1daed1d251 Step 10E.3: HUD header, icon navigation and attention badges
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:32:38 -04:00
fireshaper 526ca138fc Step 10E.2: UI kit
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:27:36 -04:00
fireshaper 45eafb2503 Step 10E.1: fonts, theme tokens and space backdrop
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:24:29 -04:00
fireshaper 9939cd3eed Step 10D.9: rest in the away summary and on HQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:10:48 -04:00
fireshaper ea561b4d74 Step 10D.8: board refresh countdown and the nothing-here prompt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:08:43 -04:00
fireshaper 9f699f716e Step 10D.7: rest and duty outlook in the dispatch sheet
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:06:09 -04:00
fireshaper da9e053598 Step 10D.6: duty bar, rest countdown and Rest now on Pilots
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:03:30 -04:00
fireshaper 3dba7c2019 Step 10D.5: apply duty and rest on the server
CI / check (push) Successful in 3m25s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:01:45 -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 055cbceaaa Step 10D.3: pilot-resting validation and duty in resolution
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 21:49:21 -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 0aa8cee953 Step 10C.8: rotated ship sprites, routes and separation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 19:32:46 -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 edc7925d0e Step 10C.5: parallax map background
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 19:17:34 -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 3a3bb84c29 Step 10B.9: bays as HQs in the Market, Locations and map
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 15:12:46 -04:00
fireshaper 2ba6721200 Step 10B.8: deadhead any idle ship to a discovered location
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 15:10:31 -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 924151d1a8 Step 10B.5: prove ships no longer strand without a bay
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 14:55:51 -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 553983590e Step 10B.2: deadhead to any discovered location
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 14:46:30 -04:00
fireshaper dff2c576cf Step 10B.1: generate contract boards for any location
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 14:41:56 -04:00
fireshaper ea37ce8ced CR-002: record change request and decisions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 14:39:31 -04:00