Release Notes

Tune.36

Summary

Sprint 35 was the first sprint with a live test game running real players. Work focused on game balance, player experience, and mobile usability. Two new game-ending conditions — Race to Mars and Race to the Moon — join the existing turn-limit format. Three computer players were added so smaller games have meaningful competition. The navigation was reorganized into four focused menus so the game is easier to use on a phone. Loan contracts were removed because they confused players; starting cash was raised to $1500 to compensate. The tech tree gained connection highlighting so players can trace dependencies. The satellite catalog is now fully sortable. Nine bugs were fixed, including a critical auction eligibility problem that silently blocked contracts from appearing and a crash when viewing a contract detail page.

New Features

New Game-End Conditions

  • Race to Mars — game ends immediately when any player achieves a crewed Mars landing. Configurable per game by the admin. (SR-852)
  • Race to the Moon — game ends when any player achieves a permanent lunar habitat. (SR-869)

Computer Players

  • Passive NPC — a computer player that starts with all satellite and rocket sizes, opening the full auction catalog from turn 1. Designed to fill out smaller games and give human players a realistic target. (SR-858)
  • Moon Racer NPC — a computer player that aggressively pursues the lunar habitat milestone, providing real competition in Race to the Moon games. (SR-891)
  • Mars Racer NPC — a computer player that pursues the crewed Mars landing milestone, providing real competition in Race to Mars games. (SR-892)

Tech Tree Connection Highlighting

  • Clicking any node in the tech tree highlights it (gold), its prerequisite, and its direct children — everything else dims. An info strip below the tree shows what it requires and leads to, with a View Details link. Click the same node again to navigate to the detail page. (SR-904)

Sortable Satellite Catalog

  • All six columns in the satellite catalog — Name, Size, Base Cost, Abilities, Build Status, You Own — are now sortable. Size sorts in game order (tiny → small → medium → large → huge). (SR-903)

Admin: Delete Games and Contracts

  • Admins can now permanently delete a game and all its data from the game edit page. (SR-887)
  • Admins can now delete contracts from the contract admin page. (SR-900)

Transactional Email

  • Game invitation emails are now sent via AWS SES for reliable delivery. (SR-755)

Improvements

  • Navigation reorganized for mobile — the single Player menu is now split into four focused menus: Player (turn actions), Auction (bidding), Advanced (resource management), and Info (guides and scoreboards). Menus are shorter and easier to tap on a phone. (SR-915)
  • Mission Control dropdowns — the Mission Control view buttons were replaced with dropdown menus, reducing clutter in the dual-viewport layout. (SR-890)
  • Starting cash raised to $1500 so players have more room to make strategic choices in the opening turns. (SR-914)
  • Loan contracts removed — loans were implemented as auction contracts, which confused players. The contract approach is being replaced with a dedicated player action in a future sprint. (SR-906)
  • Turn history page now shows your current cash balance for context while reviewing past turns. (SR-910)
  • Milestones are now listed in rough order of difficulty — easier milestones appear first so players can set near-term goals. (SR-897)
  • Milestone names rewritten to be more descriptive and player-friendly — internal code names replaced with plain language. (SR-884)
  • Registration page now clearly labels the “company” field as your in-game name, not your employer. (SR-894)
  • Login time on the account page now shows Pacific time instead of UTC. (SR-895)
  • Players in a game are now sorted by company name for consistent ordering. (SR-888)
  • Turn page simplified — redundant column of checkboxes removed; one set of action checkboxes is enough. (SR-882)
  • Admin menu reorganized — Games and Players moved to the top for faster access during a live session. (SR-868)

Bug Fixes

  • Fixed: contracts gated on a tech could be permanently blocked from appearing in auctions if the tech was recorded in player_techs but not found_tech (a silent sync failure). Auction eligibility now reads directly from player_techs, the authoritative source. (SR-905)
  • Fixed: viewing a contract detail page for a contract that no longer exists (e.g., LOAN0002 after loans were removed) caused an Internal Server Error. The page now redirects with a clear error message. (SR-913)
  • Fixed: Dog in Space required Small Satellite Tech to unlock even though the satellite is tiny size. It now correctly requires Tiny Satellite Tech. (SR-902)
  • Fixed: a game could run indefinitely past its configured max turns (observed at turn 9000). A guard now stops turn processing when the game has ended. (SR-855)
  • Fixed: satellite catalog incorrectly showed “Can Build” for satellites whose required tech the player did not have. (SR-840)
  • Fixed: an unknown event type was appearing on the player turn page. (SR-883)
  • Fixed: some contracts were appearing in auction when the player did not have the required satellite ability tech, and vice versa. (SR-866)
  • Fixed: milestone names were being corrupted during game processing. (SR-896)
  • Fixed: the news page incorrectly said the game had ended while the turn clock was still running. (SR-851)

Tune.34

Summary

Sprint 34 focused on late-game infrastructure, new game-end conditions, and game-end reliability. Four new detail pages — cargo satellites, fuel depots, habitats, and mining operations — give players direct control and status views for their late-game assets. Rideshare lets players sell unused rocket capacity to other players, opening a new cooperative economic path. Race to Mars is a new game-end condition: the game ends when any player achieves a crewed Mars landing. The milestone system was redesigned to trigger on satellite launch capabilities rather than tech research, so first-mover milestones fire at the right moment. An admin quick-create tool makes organizing live playtest sessions practical. Four bugs were fixed covering game-end detection, satellite list duplication, facility slot counting, and session handling after game end.

New Features

Late-Game Asset Pages

  • New Cargo Satellites page lists all cargo satellites in your fleet with status, orbit, and payload information. (SR-835)
  • New Fuel Depots page shows all fuel depots you operate, including fuel levels and orbit. (SR-834)
  • New Habitats page with detail view for each habitat satellite you own. (SR-832)
  • New Mining Operations page lists active mining satellites with output and status. (SR-833)

Race to Mars Game Mode

  • New game-end condition: the game ends immediately when any player achieves a crewed Mars landing. Configured per game by the admin alongside the existing Race to the Moon option. (SR-852)

Rideshare

  • Players can now sell unused rocket capacity to other players. If your rocket has payload space to spare, list it for rideshare and earn cash while helping a competitor reach orbit. (SR-715)

Admin Quick-Create Player

  • Game admins can now create player accounts directly from the Players admin page without the invite-code flow — enter username, email, company, and password and the account is ready immediately. Designed for live playtest sessions where players need to be registered in seconds. (SR-849)

Improvements

  • Milestone system redesigned — first-mover milestones now trigger when a qualifying satellite is launched, based on what the satellite can do (its abilities), rather than when tech is researched. Milestones fire at the right time and no longer require a matching contract. (SR-886)
  • Mission Control nav bar compacted — smaller buttons and labels make better use of screen space in the dual-viewport layout. (SR-871)
  • Design Notes page added to the Info menu — the history and philosophy behind Space Race, written entirely by the designer. (SR-850)
  • Register to Play link added to the Info menu, pointing directly to the registration page. (SR-846)

Bug Fixes

  • Fixed: game now correctly ends when a Lunar Habitat or Mars Landing satellite goes into orbit — previously the game only detected these if the satellite had a matching contract, so uncontracted satellites were silently ignored. (SR-886)
  • Fixed: retired and fuel-exhausted satellites no longer appear duplicated in the Turn Status satellite list — each satellite now shows up exactly once in the correct section. (SR-885)
  • Fixed: retired satellites no longer count against the launch facility slot limit, so players with a full fleet of expired satellites are not blocked from launching new ones. (SR-879)
  • Fixed: players could research Multiple Launch Facilities more than once, producing duplicate facilities. (SR-848)

Tune.33

Summary

Sprint 33 focused on early-game tuning and player onboarding. Two major quality-of-life pages landed: a Mission Control dual-viewport view that keeps the turn summary always visible while you navigate the game, and a How to Play guide for new players. The tech tree and satellite catalog gained clickable detail pages so players can inspect any technology or satellite in depth. Multi-satellite launch is now supported. Six bugs were fixed covering orbit requirements, a truncated contract name, a coalition menu regression, selling contracts, and satellites or techs that were unreachable due to missing data.

New Features

Mission Control View

  • New dual-viewport Mission Control page keeps the turn summary pinned at the top while you browse the full game below — navigate any page without losing sight of your current turn. Accessible from Player menu → Mission Control View. (SR-842)

Tech and Satellite Detail Pages

  • Every node in the Tech Tree now links to a full detail page showing cost, success chance, prerequisites, and what the technology unlocks. (SR-829)
  • New Satellite Catalog lists every satellite prototype with a detail page for each, including abilities, size, and required tech. Accessible from the Player menu. (SR-821, SR-831)

Multi-Satellite Launch

  • Players can now queue multiple satellites for launch on a single rocket when payload capacity allows. (SR-714)

How to Play Guide

  • New How to Play page introduces Space Race to new players: game overview, turn structure, key mechanics, and strategy tips. (SR-839)

Improvements

  • Space news generates more varied headlines — wider template pool reduces repetition turn over turn. (SR-825)
  • Turn processing is significantly faster. (SR-826)
  • Coalition menu is hidden when the current game has no coalitions enabled, reducing clutter. (SR-822)
  • Satellites with missing enabling abilities or tech prerequisites are now correctly populated so they appear as buildable when unlocked. (SR-804)
  • Background image reworked to fit the Mission Control layout. (SR-828)

Bug Fixes

  • Fixed: players can now sell contracts they hold. (SR-402)
  • Fixed: coalition menu disappeared for coalition-enabled games after a code regression. (SR-838)
  • Fixed: Passive Radio Reflector could not be researched due to a missing prerequisite link. (SR-843)
  • Fixed: Lunar Impactor, TV Transmissions, Mars Flyby, and Lunar Photography contracts required a non-LEO orbit when they should require LEO, preventing early deployment. (SR-844)
  • Fixed: “Automated Mining Operation” contract name was truncated to 25 characters; name column widened to 50 characters. (SR-845)

Contract.32

Summary

Sprint 32 focused on coalition stability and player experience polish. The coalition system — introduced in Sprint 29 — received a comprehensive fix pass: seven coalition bugs were resolved, the invitation and voting workflow now works reliably end-to-end, and the invite dropdown correctly filters out players who cannot be added. Players have a new dedicated Won Contracts page to track contracts they hold. The REST API was upgraded to simple token authentication, space news gained an external content type, and a dozen further bugs covering rocket sizing, fuel tracking, auction display, and contract gating were fixed.

New Features

Won Contracts Page

  • New dedicated Won Contracts page lists all contracts you currently hold, accessible from the Player menu. (SR-817, SR-827)

API Token Authentication

  • REST API now supports simple token-based authentication — pass your API key in the X-API-Key header without a browser session. (SR-787)

External Space News

  • New external space news article type for real-world space events, separate from in-game news. (SR-797)

Improvements

  • Satellite command table now shows more detail about each satellite — orbit, status, and fuel — so you can make better launch decisions. (SR-800)
  • Coalition events (formations, membership changes) now generate news stories in the space news feed. (SR-803)
  • API access logs now record the player’s username instead of the raw API key. (SR-818)

Bug Fixes

  • Fixed: rocket size requirements are now clearly shown so players can tell what size rocket a satellite needs. (SR-749)
  • Fixed: coalition intel page now correctly shows each member’s satellites, assets, and technologies. (SR-799)
  • Fixed: auction bid display clarified — current bid and leader information was misleading. (SR-802)
  • Fixed: coalition invite dropdown no longer shows players who are already in a coalition or cannot be invited. (SR-805)
  • Fixed: coalition invite dropdown no longer shows players when the coalition is at maximum size. (SR-837)
  • Fixed: contract build requirements now enforced — players can no longer build satellites they lack the prerequisites for. (SR-806)
  • Fixed: players can no longer accept a coalition invite when they are already in a coalition. (SR-807)
  • Fixed: satellites that did not change orbit were incorrectly reporting fuel exhausted. (SR-808)
  • Fixed: hidden actions from a previous game no longer carry over when a new game starts. (SR-813)
  • Fixed: space news items now include links to the relevant game page. (SR-814)
  • Fixed: advanced contracts (resource extraction, in-orbit refueling, cargo) now correctly appear only later in the game. (SR-815)
  • Fixed: auction contract detail page now shows the winner’s company name instead of their username. (SR-816)
  • Fixed: accepting a coalition invite now correctly adds the player to the coalition. (SR-819)

Contract.31

Summary

Sprint 31 is a polish and tooling sprint. The two headline player-facing features are an interactive tech tree visualization — the first time all 136 technologies are visible in one place — and a turn history page that lets players navigate back through past turns to review events and messages. The REST API is now complete, enabling external integrations and automation. Five bugs were fixed, including a critical issue where researching certain technologies did not generate the expected contract auctions.

New Features

Tech Tree Visualization

  • New Tech Tree page shows all 136 technologies as a scrollable SVG diagram organized left-to-right from basic to advanced — color-coded green (owned), teal (available), gray (locked). Hover any node for cost and success chance. (SR-798)

Turn History

  • New Turn History page lets players navigate backward through previous turns to review events and messages received. Accessible via “View Turn History” on the turn page. (SR-794)

REST API

  • Complete REST API for automation and external integrations: GET /api/v1/game, /player, /choices, /events; POST /choices, /turn/run. Token-authenticated. (SR-707SR-713)

Coalition Intel & In-Game Messaging

  • Coalition members can view each other’s satellites, assets, and technologies on the coalition intel page. Structured in-game messaging lets players send buy, sell, trade, offer, and request proposals; messages are delivered at turn run. (SR-659)

Improvements

  • Message recipient is now editable — when editing a queued message you can change the recipient using a dropdown. Previously the recipient was locked after composing. (SR-793)

Bug Fixes

  • Fixed: researching a technology that unlocks contracts (e.g., Passive Radio Reflector) now correctly generates auctions for those contracts on the same turn. (SR-796)
  • Fixed: satellite prototype designs no longer appear on the satellite designs page at game start. (SR-788)
  • Fixed: admins can no longer use “Login As” to impersonate themselves. (SR-795)
  • Fixed: Switch Game menu item was unresponsive. (SR-789)
  • Fixed: typo “coalitiions” on the coalition page. (SR-792)

Contract.29

Summary

Sprint 29 is the largest sprint to date. The headline deliverables are a complete Victory Point framework, a full coalition system with invitations and voting, orbital mechanics (engine types, fuel, in-transit tracking), major contract system redesigns (reverse auctions, immediate payouts, loan contracts), end-game scoring, live scoreboards, and a suite of admin tools. Several coalition bugs found during early testing were also resolved.

New Features

Victory Points and End-Game Scoring

  • Victory points system — full VP tracking schema and VPManager (SR-641)
  • Game end detection — max_turns setting and end-of-game handling (SR-642)
  • Milestones — new milestone tracking system and MilestoneManager (SR-643)
  • First-mover VP milestones — awarded automatically during turn processing (SR-644)
  • End-game scoring — final VP tally and Most-X milestone awards at max turns (SR-656)
  • Scoreboard — live VP leaderboard page with per-player breakdown (SR-657)
  • Coalition and player VP tracked separately (SR-686)
  • Scoreboards page (SR-687)
  • Milestone editor — admin tool to manage milestones (SR-689)
  • Public milestone table — all players can see which milestones have been claimed (SR-690)

Coalition System

  • Coalition voting — majority vote required to admit new members (SR-645)
  • Coalition locking — membership is permanent after joining (SR-646)
  • Coalition VP pooling — member VP routes to the coalition total (SR-647)
  • Coalition size limits — maximum coalition size enforced per game (SR-648)
  • Coalition invitation and voting workflow — invite a player, members vote, invited player accepts (SR-661)

Orbital Mechanics

  • Orbital position model — per-turn delta-v calculation for all satellites (SR-649)
  • Engine types — dv_per_fuel and dv_per_turn attributes on satellite prototypes (SR-650)
  • Fuel resource — fuel tracking on satellites and fuel depot asset (SR-651)
  • Satellite transit model — satellites show in-transit status with arrival tracking (SR-652)

Contract System

  • Early contracts duplicated for large games so enough contracts exist for all players (SR-658)
  • Permanent loan contracts — ongoing financial obligations (SR-662)
  • VP penalty for missed contract payments (SR-663)
  • Reverse auction mechanic — players bid the payout down rather than up (SR-666)
  • Immediate payout (get_cash) added to all contracts (SR-667)

Player Tools

  • Player statistics tracking (SR-640)
  • Player concede/retire option (SR-664)

Admin Tools

  • Article type system — extensible content categories for the news feed (SR-668)
  • Admin article editor — manually create and post news articles (SR-669)
  • Game editor — admin can edit game settings mid-game (SR-683)

Improvements

  • Research behavior improved — research now feels appropriately paced (SR-626)
  • Code quality — removed redundant game/turn parameters from functions (now sourced from context) (SR-638)

Bug Fixes

  • Fixed: coalition invites now work — invited player can see and accept invitations (SR-727)
  • Fixed: max coalition size no longer reset when starting a game (SR-730)
  • Fixed: coalitions from a previous game no longer carry over when a new game starts (SR-721)
  • Fixed: auction behavior corrected (SR-677)
  • Fixed: duplicate column name error resolved (SR-675)

Contract.28

Summary

Sprint 28 delivered coalition management, orbital transfers, new admin tools, and a major code quality pass. 41 tickets completed, including 9 bug fixes. This sprint resolved a long-standing database locking issue that was causing game instability and established the coalition system as the foundation for multi-player cooperation.

New Features

  • Coalition system — players can now join and leave coalitions, the foundational mechanic for team play (SR-631)
  • Orbital transfer system — assets can be moved between orbits (SR-529)
  • Contract table in turn view — active contracts are now listed directly on your turn page (SR-616)
  • Admin game management page — admins can view and manage all games from one place (SR-611)
  • Admin satellite management page (SR-416)
  • Main game board listing all active games (SR-198)
  • Past news archive — players can now view news from previous turns (SR-497)
  • Targeted contract auctions — creators can specify preferred bidders (SR-545)
  • Registration email notifications to admin on new signups (SR-598)
  • Tech tree analyzer tool (SR-41)

Improvements

  • Marketplace removed — simplified the player experience (SR-639)
  • Satellites now display a “retired” status (SR-570)
  • Players can hide commands from their turn view (SR-568)
  • How-to-sign-up guide rewritten (SR-629)
  • New training document for satellites and contracts (SR-624)
  • New “Best Sats” testing page added (SR-623)
  • Satellite contracts guide linked from the info page (SR-635)
  • Dedicated CSS file added for how-to-play pages (SR-216)
  • Signup process documented (SR-213)
  • Turn controller fixed and stabilized (SR-465)
  • “Remember me” login button verified working (SR-603)
  • Version field added to bug report form (SR-244)
  • Version updated to Contract.28 (SR-600)
  • Code review pass across core modules (SR-634, SR-633, SR-632)
  • Virtual environment renamed from vspace to venv for consistency (SR-622)

Bug Fixes

  • Fixed: satellite not appearing after launch (SR-636)
  • Fixed: hidden commands not staying hidden between turns (SR-627)
  • Fixed: unable to bid on auctions (SR-625)
  • Fixed: player-created contracts from previous games carrying into new games (SR-620)
  • Fixed: new auctions not appearing in the news feed (SR-619)
  • Fixed: crash when accessing your turn before the game has run (SR-604)
  • Fixed: database locked while game was running (SR-580)
  • Fixed: game icon missing from the command line (SR-524)
  • Fixed: list items displayed bolder than paragraph text (SR-203)

Contract.27

Summary

Sprint 27 focused on player empowerment. Players can now design satellite prototypes and create their own contracts. New player guides were added for the auction system, contract creation, and satellite designer. The auction house, satellite info displays, and admin tools received significant improvements. Thirteen bugs were resolved.

New Features

  • Players can create their own satellite prototypes (SR-576)
  • Players can create contracts for themselves (SR-575)
  • Admin page to manage players (SR-572)
  • Startup check verifies the database exists before the game runs (SR-571)
  • Info menu redesigned to match the admin menu layout (SR-579)
  • Auction house now shows what the current turn number is (SR-591)
  • Player guide added: satellite designer (SR-357)
  • Player guide added: contract creation (SR-355)
  • Player guide added: auction system (SR-354)

Improvements

  • Players can no longer set the base price of their own satellite (SR-602)
  • Satellite revenue display now shows both dollars-per-turn and number of turns (SR-597)
  • Auction timing display corrected — “ends after turn X” now shows the right turn number (SR-594)
  • “Run turn” option moved to the top of the admin menu (SR-578)
  • More information shown to players about their operating satellites (SR-569)
  • Prototype IDs converted to strings for consistency (SR-539)
  • Version number updated to Contract.27 (SR-599)
  • Copyright updated to include 2026 (SR-590)
  • nginx now correctly serves static pages (SR-248)

Bug Fixes

  • Fixed: auctionable flag on player contracts now correctly puts them in the auction on the next turn (SR-618)
  • Fixed: error running db_migration_tool (SR-617)
  • Fixed: players were unable to launch satellites (SR-615)
  • Fixed: auction end turn was firing one turn late (SR-614)
  • Fixed: satellite displayed wrong orbit even though status was ready to launch (SR-613)
  • Fixed: players could see all system prototype satellites instead of only their own (SR-612)
  • Fixed: contract editor was missing the auctionable flag (SR-609)
  • Fixed: database generation failure was silent and hard to diagnose (SR-606)
  • Fixed: cash went to zero when players tried to perform actions (SR-605)
  • Fixed: players were not paid on the turn they won a contract (SR-596)
  • Fixed: completed auctions were incorrectly generating new auctions (SR-592)
  • Fixed: space news announced contract wins one turn after the fact (SR-588)
  • Fixed: auction menu was visible to users who were not logged in (SR-573)

Contract.26

Summary

Sprint 26 was a major stabilization sprint with 31 issues resolved. Work focused on fixing crashes in the game loop, completing auction and news integration, repairing the satellite contract payout pipeline, and adding player self-registration. Automated test infrastructure was also established this sprint.

New Features

  • Players can now self-register using an invite code, no admin action required (SR-593)
  • Research continues automatically from turn to turn once started (SR-521)

Improvements

  • Admin tools consolidated under a single Admin menu (SR-557)
  • News feed notifies players when new auction contracts become available (SR-567)
  • Auction listings now display the turn on which they end (SR-551)
  • Contract awards now generate news items (SR-550)
  • Buildings show a count when the player owns multiple of the same type (SR-526)
  • Pending cash changes hidden until after the turn runs (SR-272)
  • Tiny and medium satellite tech prerequisites corrected to require small satellite tech (SR-489)
  • Automated test system runs on every check-in (SR-220)

Bug Fixes

  • Fixed: crash when viewing “see my turn” page (AttributeError on ContractManager) (SR-589)
  • Fixed: crash when navigating to “take turn” page (SR-587)
  • Fixed: assertion error when running turn (SR-577)
  • Fixed: no notification shown after winning an auction (SR-586)
  • Fixed: medium rocket tech had wrong prerequisite (tiny sat instead of small rocket) (SR-585)
  • Fixed: no news message generated when research succeeded (SR-584)
  • Fixed: false “not enough cash” error shown inappropriately (SR-566)
  • Fixed: multiple redundant low-cash messages shown (SR-565)
  • Fixed: silent failure when adding extra research with no error message (SR-564)
  • Fixed: false “please log in” redirect after starting a new game while logged in (SR-563)
  • Fixed: no notification when accessing pages without being logged in (SR-562)
  • Fixed: Space News required login to view (SR-561)
  • Fixed: old auctions persisted after restarting a game (SR-558)
  • Fixed: satellite contract payouts not working (contract_req_satellites table was empty) (SR-556)
  • Fixed: new auctions delayed one extra turn after research completes (SR-555)
  • Fixed: auction results not appearing in news (SR-548)
  • Fixed: auction house showed incorrect time for end of auction (SR-540)
  • Fixed: building a launch facility incorrectly built a rocket (SR-527)
  • Fixed: messages shown at inappropriate times (SR-525)
  • Fixed: false “login unsuccessful” message shown after successful login (SR-516)
  • Fixed: news page columns too narrow (SR-490)
  • Fixed: news items showing “No Value” (SR-486)
  • Fixed: missing automated tests written (SR-296)
  • Fixed: cash could go negative; overspend now blocked (SR-295)
  • Fixed: admin links were accessible to non-admin users (SR-294)
  • Fixed: cash display updated live while editing actions instead of waiting until turn runs (SR-285)
  • Fixed: login failure not properly reported to user (SR-210)

Contract.25

Summary

Sprint 25 is a major release focused on completing the contract and auction system end-to-end. Players can now bid on contracts at auction, win them, and track them in a dedicated contracts table. New orbit types and rocket sizes were added, including super heavy rockets and extra-large satellites. Satellite abilities are now defined and linked to contracts. Players start the game with essential technologies so they can build and launch from turn 1. Ten bugs were fixed covering game progression, UI layout, and contract availability.

New Features

  • Players now start with Small Rocket tech, enabling building and launching from turn 1 (SR-535)
  • Players start with the ability to build a Research Facility, eliminating a dead first turn (SR-488)
  • Full bidding-to-contract-award flow implemented and tested end-to-end (SR-440)
  • Contracts now have a configurable starting point controlling when they become available for auction (SR-512)
  • Satellite abilities created and linked to contract requirements (SR-291)
  • New orbit types and rocket sizes added to support expanded mission profiles (SR-290)
  • Super heavy rockets and extra-large satellites added (SR-246)
  • Players can view their active and won contracts in a dedicated contracts table (SR-281)
  • Contracts now expire if not fulfilled within their allotted turns (SR-259)

Improvements

  • How To Play page updated to reflect auctions, contracts, satellites, and facility limits (SR-554)
  • Roadmap and information pages updated with current feature status (SR-553, SR-546)
  • Contract availability triggers corrected so contracts only appear when prerequisites are met (SR-534)
  • Satellite ability starting tech corrected; too many abilities were defaulting to Small Rocket (SR-536)
  • Removed phantom player ORM Labs that was appearing in single-player games (SR-538)
  • SSL certificate updated (SR-463)
  • Virtual environment removed from repository (SR-464)

Bug Fixes

  • Fixed: auction sidebar incorrectly showed Outbid on contracts the player had won (SR-552)
  • Fixed: could not build Passive Radio Reflector satellite (SR-541)
  • Fixed: late-game contracts were appearing in the auction house early in the game (SR-537)
  • Fixed: no contracts were available for auction at game start (SR-528)
  • Fixed: game was generating generic placeholder events instead of real news (SR-544)
  • Fixed: satellite revenue counter remained at $0M even when satellites were operational (SR-292)
  • Fixed: turns were not progressing (SR-286)
  • Fixed: test_is_asset_allowed was failing in game tests (SR-273)
  • Fixed: dropdown menus were rendering behind page titles (SR-242)
  • Fixed: building and launching a rocket on the same turn caused the rocket to disappear (SR-236)

Contract.24

Summary

Sprint 24 focused on stabilizing and completing the contract auction system that was introduced in earlier sprints. The majority of work involved fixing critical bugs in the UI pages, resolving data type consistency issues throughout the system, and ensuring all tests pass. The contract auction feature is now fully functional with proper bid management, contract detail visibility, and auction lifecycle control.

New Features

  • Contract Auction System: Complete implementation of contract auctions with bid management, including minimum bid validation (SR-495)
  • Research Facility Validation: Players are now prevented from researching without a research facility (SR-487)
  • Enhanced Bid Interface: Bid page now displays complete contract data for informed bidding decisions (SR-511)

Improvements

  • Admin Controls: Ability to manage active auctions with edit/delete restrictions removed from UI (SR-506, SR-505, SR-503)
  • Data Type Consistency: Ability costs and satellite base costs now properly display as integers throughout the system (SR-494, SR-499, SR-507)
  • Satellite Size Matching: Fixed display logic for satellites matching maximum size (now shows green instead of yellow) (SR-498)
  • Form Field Labeling: Contract payout fields now clearly marked as monetary values (SR-500)
  • Auction Logic: Fixed auction ending behavior to only close on inactivity rather than fixed end dates (SR-514)
  • UI Consistency: Removed duplicate/extraneous notifications from auction pages (SR-501)
  • Auction House: Fixed discrepancy between auction house link and auction page listings (SR-504)

Bug Fixes

Core Functionality:
  • Fixed game start errors (SR-515)
  • Fixed auction system errors during creation and display (SR-492, SR-491)
  • Fixed active auction bid rejection error (SR-513)
  • Fixed contract page generation errors (SR-483)
Satellite Management:
  • Fixed satellite page errors (SR-485)
  • Fixed satellite creation without orbit validation (SR-510)
  • Fixed satellite prototype creation bug (SR-496)
  • Fixed contract editor satellite orbit handling (SR-509, SR-508)
UI/UX:
  • Fixed ability page errors (SR-484)
  • Fixed turn execution errors (SR-341, SR-466)
  • Fixed missing BID button on active auction page (SR-502)
Testing & Infrastructure:
  • Fixed test_usermanager failures (SR-481)
  • Fixed test_player failures (SR-480)
  • Fixed movemanager test failures (SR-479)
  • Fixed test_game.py failures (SR-477)
  • Fixed contract manager test failures (SR-476)
  • Fixed bidmanager test failures (SR-475)
  • Fixed eventmanager test failures (SR-473)
  • Database code fixes and cleanup (SR-471)
  • UserManager Flask-Login integration fixes (SR-470)
  • Removed invalid test user data (SR-472)
  • Comprehensive test suite execution and validation (SR-474)

Contract.23

Contract.22