Commit Graph

157 Commits

Author SHA1 Message Date
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 026947ebe9 Step 16.2: content: goods
CI / check (push) Has been cancelled Details
Adds Atmospheric Data Cores, Refined Sulfur, Volcanic Isotopes and
Subsurface Ocean Samples, and the new producers and destinations for
existing goods at Venus, Io and Europa.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 13:37:39 -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 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 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 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 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 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 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 1909eddfb2 Step 12.2: tutorial economy check on measured numbers
CI / check (push) Successful in 6m14s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 19:23:44 -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 6b56af7d1e Lower Earth launch cost to 2.1 so both deal ships can fly at once
CI / check (push) Successful in 5m26s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 13:41:16 -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 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 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 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 776a890757 Step 10L.4: reach table tuning
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 01:32:01 -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 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 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 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 e0742fff76 Step 10J.1: pilot profit share config and the veteran pilot
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 21:22:21 -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 92520dbc4f Step 10I.2: effective ship stats in the sim
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 19:13:11 -04:00
fireshaper 0a7e9d97c8 Step 10I.1: ship upgrade content
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 19:08:59 -04:00
fireshaper 4acf346005 Fit jobs pick from all goods that fit; no undersized heavy lots
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 18:20:56 -04:00
fireshaper bf19f498b8 Step 10H.2: each board contract pays its own market rate
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 18:02:31 -04:00
fireshaper 6e427e52f7 Step 10H.1: pay variance setting and five more early goods
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:59:25 -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 46dd3777c9 Step 10G.5: tutorial contracts carry named goods
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:07:54 -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 83d0b3900f Step 10G.3: goods, Priority and shippers in board generation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:01:14 -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 215f380e80 Step 10F.3: boards fit the player's fleet
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 12:17:08 -04:00
fireshaper dc24bdeb7a Step 10F.2: board preview and open slot config
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 12:15:39 -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 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 6b6753f3b2 Step 10D.2: sim duty and rest functions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 21:44:11 -04:00
fireshaper 935d9b43f0 Step 10D.1: duty limit, Long Haul duty bonus and rest config
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 21:43:09 -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 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 c36d1edf55 Give every contract board jobs for each ship size
CI / check (push) Successful in 2m46s Details
Bay contract mass now comes from per-ship-size bands, and the first
contract in each band is a no-skill Standard job to a discovered
location, so a new player with only a Courier always has work.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 12:22:02 -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 b3ed6ef71d Step 10A.5: add onboarding goal evaluation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 10:59:25 -04:00
fireshaper 401914e76b Step 10A.4: add loan repayment to resolution
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 10:57:08 -04:00
fireshaper dd0b26813f Step 10A.3: add tutorial board v2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 10:54:44 -04:00
fireshaper 957c54cc2c Step 10A.2: add cargo handling time to travel time
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 10:50:15 -04:00
fireshaper bfda781601 Step 10A.1: add loaner ship, tutorial and loan config, goals
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 10:47:52 -04:00
fireshaper f31d036f08 Step 6.8: add hiring and assigning pilots
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 01:15:38 -04:00
fireshaper 439c35ae35 Step 4.2: add API route catalog
CI / check (push) Successful in 40s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 20:51:45 -04:00
fireshaper f95acd06ba Step 4.1: define API data shapes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 20:50:48 -04:00
fireshaper f33a9155cc Step 3.18: define sim public API and add coverage
CI / check (push) Successful in 38s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:51:49 -04:00
fireshaper 50b038047f Step 3.17: add dispatch resolution
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:50:58 -04:00
fireshaper a685235e90 Step 3.16: add XP and leveling
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:50:14 -04:00
fireshaper 1472dc6786 Step 3.15: add in-flight position and progress
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:49:46 -04:00
fireshaper 039df0ac5b Step 3.14: add reposition dispatch
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:49:14 -04:00
fireshaper e3967c10e4 Step 3.13: add dispatch record creation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:48:11 -04:00
fireshaper 1e3b45b529 Step 3.12: add dispatch validation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:47:24 -04:00
fireshaper dfd76ba9bc Step 3.11: add pilot eligibility
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:46:15 -04:00
fireshaper 0a0a43a54e Step 3.10: add tutorial contract board
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:45:48 -04:00
fireshaper b7a40aa490 Step 3.9: add contract board generation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:45:01 -04:00
fireshaper cbcc981b6d Step 3.8: add contract model and payout
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:44:02 -04:00
fireshaper 0e5faab454 Step 3.7: add range and landing eligibility
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:43:25 -04:00
fireshaper ace0d8502d Step 3.6: add fuel cost
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:42:47 -04:00
fireshaper 36bdbf3af0 Step 3.5: add travel time
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:42:27 -04:00
fireshaper ccd571fdd0 Step 3.4: add route distance
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:42:02 -04:00
fireshaper 301c0934e1 Step 3.3: add location positions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:41:39 -04:00
fireshaper 79c63c13b7 Step 3.2: add seeded random number generator
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:40:49 -04:00
fireshaper f44789878e Step 3.1: add game clock conversion
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:40:19 -04:00
fireshaper 241e2613f4 Step 2.6: export a single content bundle
CI / check (push) Successful in 24s Details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 17:47:44 -04:00