Commit Graph

250 Commits

Author SHA1 Message Date
fireshaper 51e3177689 Step 18.3: engine: deal ships start full; Manual by default
CI / check (push) Has been cancelled Details
New ships (deal or Market) come full on Manual refueling; save version
3 puts every existing ship on Manual. The balance simulator refuels only
when a job needs it (decisions 0.5.111, 0.5.112).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:14:35 -04:00
fireshaper 4e7ae7505d Step 18.2: content: lower the base fuel price
CI / check (push) Successful in 6m13s Details
Base fuel price 10 -> 5 cr/fu. No route is above 25% of the median
fitting payout but the Clipper's Mars -> Earth; the first purchase
window is now 30-95 min (user decisions, 0.5.110).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:07:08 -04:00
fireshaper 77eaa3ac98 Step 18.1: sim: fuel-to-payout balance check
CI / check (push) Successful in 6m17s Details
For every purchasable ship and route it can fly, the leg's fuel at the
origin's price against the median payout of fitting contracts; the
balance script prints the table (decision 0.5.110).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 17:22:26 -04:00
fireshaper e5eebdd8aa Record CR-018: fuel tuning (Phase 18)
Received as CR-017 for Phase 17; renumbered. Decisions 0.5.110-0.5.113.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 17:17:48 -04:00
fireshaper d57919b382 Step 17.7: plan amendments and regression
CI / check (push) Successful in 6m20s Details
CR-017 §6: plan 0.5.30, CR-001 (story, 0.5.22, Steps 10A.1, 10A.3,
10A.7, 10A.8) and CR-011 Step 10H.4 amended. Full suite and balance
targets pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:25:00 -04:00
fireshaper e6d273cfce Step 17.6: client: skill point pop-up
CI / check (push) Has been cancelled Details
A one-time tip after the deal and the notification permission prompt,
listing each pilot's unspent skill points, with Go to Pilots and Later
(decision 0.5.109). The engine client exposes the pending permission
prompt as ApiClient.notificationPrompt().

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:22:29 -04:00
fireshaper b0502d4a7a Step 17.5: client: Pilots tab badge
CI / check (push) Successful in 6m11s Details
The Pilots tab badge shows the total unspent skill points across all
pilots, hidden at zero (decision 0.5.109).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:15:00 -04:00
fireshaper 1520cb30fd Step 17.4: engine: deal availability and placement
CI / check (push) Has been cancelled Details
Tests the five-run deal: not after four runs, available after the fifth
at the Moon, both pilots and ships at Earth after accepting, and an
older save with four runs done needing one more. No save migration is
needed since the deal is worked out from the run count.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:09:21 -04:00
fireshaper 4537773560 Step 17.2: sim: tutorial XP and the level-1 guarantee
CI / check (push) Has been cancelled Details
Tutorial runs earn their XP times the tutorial XP multiplier. At 2x
the five cheapest runs make exactly the 100 XP for level 1, so the
avatar always has a skill point at the deal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:06:35 -04:00
fireshaper 35b12e50da Step 17.1: content: tutorial settings
CI / check (push) Has been cancelled Details
Five tutorial runs before the deal and a tutorial XP multiplier of 2.
The deal no longer waits for the loaner to be back at Earth, since five
runs end at the Moon; accepting it still puts the avatar at Earth.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:04:12 -04:00
fireshaper a95b94d73d Record CR-017: tutorial XP and skill point prompt (Phase 17)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:58:17 -04:00
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 fb529a1ba4 Step 16.8: map: new bodies and Jupiter-system layout
CI / check (push) Has been cancelled Details
Io and Europa sit at fixed screen offsets around Jupiter and Venus at
its place. Crowded label families fold into the parent's label with a
"+N" marker (the Jupiter system below zoom 2.5); tapping it or zooming
in shows all three. The haze strip is finer and repeats so it doesn't
streak when zoomed in. The discovery browser test waits for a Mars
first contact now that Venus competes for the slot.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:12:26 -04:00
fireshaper 1d9dbdb7d5 Step 16.7: map: belt rocks
CI / check (push) Successful in 6m16s Details
Scatters 220 rocks from the six sliced images across the belt with a
seeded generator (denser in the middle, mostly small, varied rotation
and brightness), keeps them clear of Ceres at every zoom, and draws them
in one non-interactive container. Review screenshots added.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 13:56:41 -04:00
fireshaper 9cd2bbe3fd Step 16.6: map: belt haze
CI / check (push) Has been cancelled Details
Draws the asteroid belt's haze as a ring mesh between 314M and 494M km
on the map's compressed scale: a strip drawn in code (or belt-haze.png
when provided) wrapped around the ring, static, non-interactive, above
the orbit rings and below routes and bodies. Review screenshots added.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 13:52:13 -04:00
fireshaper 89b2e2689c Step 16.5: assets: sprites and belt rocks
CI / check (push) Has been cancelled Details
The art script slices belt-asteroids.png into its six separate rocks
(connected regions of visible pixels, each cut out on its own) and
exports them at 64 and 128 px; an optional belt-haze.png strip is
supported. The source images are only read.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 13:46:55 -04:00
fireshaper 50d23436aa Step 16.4: engine: save migration and boards
CI / check (push) Has been cancelled Details
Older saves open with the three new places undiscovered and nothing
else changed (the save lists only discovered places, so no migration is
needed), Earth boards offer first contacts to Venus, and delivering one
discovers Venus and opens its board with Venus goods.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 13:41:58 -04:00
fireshaper d626989779 Step 16.3: content tuning: reach
CI / check (push) Has been cancelled Details
Every cell of the CR-015 reach table and the CR-016 additions holds with
the existing tanks, so no content changes: the step adds one test per
new cell, the Bulk Hauler's 900M km minimum, and the Courier's
Jupiter-system loop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 13:39:46 -04:00
fireshaper c0d3897d8d Step 16.1: content: new locations
CI / check (push) Has been cancelled Details
Venus Cloud City, Io Sulfur Works and Europa Ice Station join the map
(fixed positions, Io and Europa riding with Jupiter), with their
fuel prices, range factors, shippers and sprites. Each makes a
Standard good so boards work there. The first-purchase balance window
widens to 45-95 minutes (user decision).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 13:34:51 -04:00
fireshaper 264783088e Record CR-016: Venus, Io, Europa and the asteroid belt (Phase 16)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 13:21:00 -04:00
fireshaper f415227dbf Step 15.9: plan amendments and regression
CI / check (push) Successful in 7m25s Details
Applies CR-015's amendments to the implementation plan (deferred list,
decisions, content, sim, client and phase notes). The balance check now
also confirms no simulated ship ever needs emergency fuel while the
player has credits on Auto top-up. Phase 15 is complete.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 02:03:01 -04:00
fireshaper 420d4c47f0 Step 15.8: client: fixed map
CI / check (push) Has been cancelled Details
The map places every body once and moves only flights; orbit rings
stay as decoration. Reach wording loses its dates: "From Earth: Moon,
Mars", "Out of range (...)", and the Market's "Other dates" line is
gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 01:58:13 -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 0a1ca1d3ea Step 15.2: sim: static positions and distances
CI / check (push) Successful in 5m44s Details
Positions, distances, range checks, trip times, fuel and the no-strand
rule no longer take a time argument; the 48-hour no-strand margin goes
with it. Tests now check that a route's pay, trip time and fuel are the
same whenever it is offered or flown.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:54:57 -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 23b3d7ec97 Record CR-015: fixed map and fuel tanks (Phase 15)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:30:40 -04:00
fireshaper 13eb058052 Step 14.12: plan amendments and regression
CI / check (push) Successful in 5m52s Details
Applies CR-014's amendments to the implementation plan (server phases
superseded, client and end-to-end steps amended, Phase 13 replaced by
static hosting) and adds its table for translating later change
requests as plan section 0.6. Rewrites tech-stack.md for the
local-first stack. Phase 14 is complete.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 23:56:38 -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 f77f786408 Step 14.8: company creation on the device
CI / check (push) Successful in 7m44s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 20:25:59 -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 fcc3047af8 Step 14.4: mutation queue and tab lock
CI / check (push) Successful in 7m24s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:19:03 -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 8ffd408290 CR-014: record the local-first change request
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:09:22 -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 ec8971a16a DECISIONS: clarify backup retention wording
CI / check (push) Successful in 7m15s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 17:54:04 -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 9d72cace13 Raise base pay for every cargo class by 50%
CI / check (push) Successful in 7m31s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 16:29:47 -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