0.8.0.10:0 — bundle Station Master v0.8.0.10
Playtest fixes. The Superintendent is no longer asked to rule on a train BEHIND the one departing — which cost a real game a collision, since holding the departing train kept the only A/D track full and the train behind it arrived into that. The screen names the player whose move it is showing while the board catches up, the history no longer runs ahead of it, a Realignment says which card it converted and flashes it on the map, a ruling made by holding the office says so, and a seated player can download their own game as a save file. GAMES IN PROGRESS OFTEN WILL NOT RESUME, deliberately: a save replays through the current rules, so a game holding a ruling the rules no longer ask for is refused at that move. The server logs which move and leaves the file alone; re-installing 0.8.0.9 finishes such a game. Measured at 28 of 40 recorded four-seat games. Jesse's call: ship it. The release notes say so in all five locales, and README and instructions.md carry the warning. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017nnuCv8UodHucFfx3LWEoX
This commit is contained in:
@@ -13,11 +13,18 @@ Station Master is a railroad operations board game with an authoritative multipl
|
|||||||
solitaire needs no server and is not what this package is for. This package runs that server —
|
solitaire needs no server and is not what this package is for. This package runs that server —
|
||||||
the browser client, the lobby, and the intent/SSE API — as a single StartOS service.
|
the browser client, the lobby, and the intent/SSE API — as a single StartOS service.
|
||||||
|
|
||||||
**Bundled version: 0.8.0.9.** The bots that fill empty seats play far better — they plan each switching
|
**Bundled version: 0.8.0.10.** Fixes from the first multiplayer playtests: the Superintendent is no
|
||||||
turn, stop wasting their draws, and build their districts — and the engine checks moves about three times
|
longer asked to rule on a train BEHIND the one departing (which cost a real game a collision), the screen
|
||||||
faster. **Games in progress on this server resume normally**: no rule changed, and the speed-up was proven
|
says whose move it is showing while the board catches up, the history no longer races ahead of it, a
|
||||||
to leave play identical by hashing every event of 32 seeded games before and after each step. The game's
|
Realignment says which card it converted and flashes it on the map, and a seated player can download their
|
||||||
`CHANGELOG.md` has the measurements.
|
own game as a save file. v0.8.0.9 before it rebuilt the bot and made the engine about three times faster.
|
||||||
|
|
||||||
|
**GAMES IN PROGRESS DO NOT ALL SURVIVE THIS ONE**, and that is the exception to the rule below rather
|
||||||
|
than a break in it. A save is the seed and the moves replayed through the CURRENT rules, so correcting
|
||||||
|
WHEN a ruling is asked for strands a game that holds one the rules no longer ask: the server refuses that
|
||||||
|
game, logs the move it stopped at, and leaves its file untouched. Measured: 28 of 40 recorded four-seat
|
||||||
|
games stop, usually 5-40% of the way in. Jesse's call (2026-09-15) was to ship it as is; a game worth
|
||||||
|
finishing can be finished by putting v0.8.0.9 back.
|
||||||
|
|
||||||
The paragraphs below were written for the 0.7.9.8 bump and still describe how a bump is checked.
|
The paragraphs below were written for the 0.7.9.8 bump and still describe how a bump is checked.
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,27 @@ watches the table — there is nothing else to open.
|
|||||||
Solitaire runs entirely in your own browser and needs nothing from the server, so it works here
|
Solitaire runs entirely in your own browser and needs nothing from the server, so it works here
|
||||||
exactly as it does on the public Station Master site.
|
exactly as it does on the public Station Master site.
|
||||||
|
|
||||||
|
**What changed in 0.8.0.10. GAMES ALREADY RUNNING ON THIS SERVER MAY NOT RESUME** — this update fixes a
|
||||||
|
rule, and a saved game is replayed through the current rules, so a game that contains a decision the rules
|
||||||
|
no longer ask for stops at that point. Nothing is deleted: the server says which move it stopped at and
|
||||||
|
keeps the file, and re-installing 0.8.0.9 lets such a game be played out.
|
||||||
|
|
||||||
|
**The fix is worth it.** The Superintendent was being asked to rule on a train BEHIND the one leaving,
|
||||||
|
which is nobody's concern — and holding the leaving train kept the only arrival track occupied, so the
|
||||||
|
train behind arrived into it and was destroyed. A train moving away behind you no longer holds you up
|
||||||
|
either.
|
||||||
|
|
||||||
|
**Watching other players is clearer.** While your board catches up on everyone else's moves, the screen
|
||||||
|
names the player whose move you are watching rather than whoever the game is really waiting on, and the
|
||||||
|
history no longer runs ahead of the board — each line appears as its move is drawn, with Skip still
|
||||||
|
showing everything at once. The name on the Division map is readable again. A Realignment now says which
|
||||||
|
card it converted, and that card flashes on the map as it changes. A move made by holding the
|
||||||
|
Superintendent's office says so, and no line names a player twice.
|
||||||
|
|
||||||
|
**You can save a multiplayer game to a file.** The **Save replay** button on the play screen now works in
|
||||||
|
multiplayer as well as solitaire, and writes the game to your Downloads folder — the same save the Manage
|
||||||
|
Game action hands back as text.
|
||||||
|
|
||||||
**What changed in 0.8.0.9. Games already running on this server are not affected** — they resume
|
**What changed in 0.8.0.9. Games already running on this server are not affected** — they resume
|
||||||
normally; no rule changed.
|
normally; no rule changed.
|
||||||
|
|
||||||
|
|||||||
+107
-69
@@ -10,81 +10,104 @@ export const current = VersionInfo.of({
|
|||||||
// — checked against the SDK's own parser rather than assumed, since every example in `versions.md`
|
// — checked against the SDK's own parser rather than assumed, since every example in `versions.md`
|
||||||
// has three: `0.7.9.8:0` parses to upstream `[0,7,9,8]`, which sorts above `[0,7,9]`, so a box on
|
// has three: `0.7.9.8:0` parses to upstream `[0,7,9,8]`, which sorts above `[0,7,9]`, so a box on
|
||||||
// 0.7.9:0 sees this as an update rather than refusing it as a downgrade.
|
// 0.7.9:0 sees this as an update rather than refusing it as a downgrade.
|
||||||
version: '0.8.0.9:0',
|
version: '0.8.0.10:0',
|
||||||
releaseNotes: {
|
releaseNotes: {
|
||||||
en_US:
|
en_US:
|
||||||
'Bundles Station Master v0.8.0.9 — the bots play much better, and the server does its work ' +
|
'Bundles Station Master v0.8.0.10 — fixes from the first multiplayer playtests. **GAMES IN ' +
|
||||||
'faster. GAMES IN PROGRESS ON THIS SERVER ARE UNAFFECTED and will resume normally: no rule ' +
|
'PROGRESS ON THIS SERVER WILL OFTEN NOT RESUME AFTER THIS UPDATE**, because a rule about when ' +
|
||||||
'changed. A bot filling an empty seat now plans its whole switching turn before its first ' +
|
'the Superintendent is asked to rule has been corrected, and a saved game is replayed through ' +
|
||||||
'move, so it delivers cars to industries that can work them instead of choosing one move at a ' +
|
'the current rules: a game holding a ruling the rules no longer ask for stops there. The ' +
|
||||||
'time, and it brings expedited trains back to the station. It no longer takes face-up cards ' +
|
'server says which move it stopped at and leaves the game\u2019s file untouched, so nothing ' +
|
||||||
'it cannot play only to throw them back, so it builds its district — more track, more ' +
|
'is lost — and putting v0.8.0.9 back lets such a game be finished. The fix: the ' +
|
||||||
'industries, and run-arounds far more often, because it now lays track where it opens up ' +
|
'Superintendent was asked to rule on a train BEHIND the one departing, which is nobody\u2019s ' +
|
||||||
'something to do. And it no longer runs a Second Section by accident when it meant to start ' +
|
'concern — it cost a real game a collision, because holding the departing train kept the only ' +
|
||||||
'an Extra, which caused many of its collisions. Measured over thousands of simulated games, a ' +
|
'arrival track full and the train behind it arrived into it and was destroyed. A train moving ' +
|
||||||
'bot now earns about 4.8 Revenue a game, where it earned about −0.3 before. Behind the ' +
|
'away behind you no longer holds you either. Also in this release: while your board is ' +
|
||||||
'scenes, working out where a train can move is now done once per position instead of several ' +
|
'catching up on other players\u2019 moves, the screen now says whose move you are watching ' +
|
||||||
'times, which makes the server about three times faster at checking moves — with play proven ' +
|
'instead of naming whoever the game is really waiting on, and the history no longer races ' +
|
||||||
'identical.',
|
'ahead of the board — lines appear as their moves are drawn, and Skip still shows everything ' +
|
||||||
|
'at once. The name on the Division map is readable again. A Realignment says which card it ' +
|
||||||
|
'converted — “Mainline card 3, Curves, converted to Plains” — and the card flashes on the map ' +
|
||||||
|
'as it changes. A move made by holding the Superintendent\u2019s office reads “Superintendent ' +
|
||||||
|
'Player Tom”, so it is clear it was not their ordinary turn, and no line names a player twice ' +
|
||||||
|
'any more. And a seated player can now download their own game as a save file from the play ' +
|
||||||
|
'screen, which previously only solitaire could do.',
|
||||||
es_ES:
|
es_ES:
|
||||||
'Incluye Station Master v0.8.0.9 — los bots juegan mucho mejor y el servidor trabaja más ' +
|
'Incluye Station Master v0.8.0.10 — correcciones de las primeras partidas de prueba ' +
|
||||||
'rápido. LAS PARTIDAS EN CURSO EN ESTE SERVIDOR NO SE VEN AFECTADAS y se reanudarán con ' +
|
'multijugador. **LAS PARTIDAS EN CURSO EN ESTE SERVIDOR A MENUDO NO SE REANUDARÁN TRAS ESTA ' +
|
||||||
'normalidad: no ha cambiado ninguna regla. Un bot que ocupa un asiento vacío planifica ahora ' +
|
'ACTUALIZACIÓN**, porque se ha corregido una regla sobre cuándo se pide una decisión al ' +
|
||||||
'su turno de maniobras completo antes de su primer movimiento, así que entrega vagones a las ' +
|
'Superintendente, y una partida guardada se reproduce con las reglas actuales: una partida ' +
|
||||||
'industrias que pueden trabajarlos en lugar de decidir movimiento a movimiento, y devuelve ' +
|
'que contenga una decisión que ya no se pide se detiene ahí. El servidor indica en qué ' +
|
||||||
'los trenes expresos a la estación. Ya no toma cartas descubiertas que no puede jugar solo ' +
|
'movimiento se detuvo y deja intacto el archivo, así que no se pierde nada; volver a la ' +
|
||||||
'para volver a descartarlas, así que construye su distrito — más vía, más industrias y vías ' +
|
'v0.8.0.9 permite terminar esa partida. La corrección: se pedía decidir sobre un tren DETRÁS ' +
|
||||||
'de circunvalación mucho más a menudo, porque ahora tiende vía donde abre algo que hacer. Y ' +
|
'del que salía, lo que no afecta a nadie — y costó una colisión real, porque retener el tren ' +
|
||||||
'ya no lanza una Segunda Sección por accidente cuando quería poner en marcha un Extra, lo que ' +
|
'que salía mantenía ocupada la única vía de llegada y el tren de atrás llegaba y quedaba ' +
|
||||||
'causaba muchas de sus colisiones. Medido en miles de partidas simuladas, un bot gana ahora ' +
|
'destruido. Un tren que se aleja por detrás tampoco te retiene ya. Además: mientras tu ' +
|
||||||
'unos 4,8 de Ingresos por partida, frente a unos −0,3 antes. Por dentro, calcular adónde ' +
|
'tablero se pone al día con los movimientos de otros, la pantalla dice de quién es el ' +
|
||||||
'puede moverse un tren se hace ahora una vez por posición en lugar de varias, lo que hace al ' +
|
'movimiento que estás viendo en lugar de nombrar a quien realmente espera la partida, y el ' +
|
||||||
'servidor unas tres veces más rápido al comprobar movimientos — con el juego demostrado ' +
|
'historial ya no se adelanta al tablero — las líneas aparecen según se dibujan sus ' +
|
||||||
'idéntico.',
|
'movimientos, y Saltar sigue mostrándolo todo de golpe. El nombre en el mapa de la División ' +
|
||||||
|
'vuelve a leerse bien. Una Realineación dice qué carta convirtió y la carta parpadea en el ' +
|
||||||
|
'mapa. Una jugada hecha como Superintendente se lee «Superintendent Player Tom», y ninguna ' +
|
||||||
|
'línea nombra dos veces al jugador. Y quien ocupa un asiento puede descargar su propia ' +
|
||||||
|
'partida como archivo desde la pantalla de juego, algo que antes solo podía el solitario.',
|
||||||
de_DE:
|
de_DE:
|
||||||
'Enthält Station Master v0.8.0.9 — die Bots spielen deutlich besser, und der Server arbeitet ' +
|
'Enthält Station Master v0.8.0.10 — Korrekturen aus den ersten Mehrspieler-Testpartien. ' +
|
||||||
'schneller. LAUFENDE SPIELE AUF DIESEM SERVER SIND NICHT BETROFFEN und werden normal ' +
|
'**LAUFENDE SPIELE AUF DIESEM SERVER WERDEN NACH DIESEM UPDATE OFT NICHT FORTGESETZT**, weil ' +
|
||||||
'fortgesetzt: Keine Regel hat sich geändert. Ein Bot auf einem freien Platz plant jetzt ' +
|
'eine Regel dazu korrigiert wurde, wann der Superintendent entscheiden muss, und ein ' +
|
||||||
'seinen ganzen Rangierzug, bevor er sich zum ersten Mal bewegt, und stellt Wagen daher bei ' +
|
'gespeichertes Spiel mit den aktuellen Regeln nachgespielt wird: ein Spiel mit einer ' +
|
||||||
'Industrien zu, die sie bearbeiten können, statt Zug um Zug zu entscheiden; beschleunigte ' +
|
'Entscheidung, die es nicht mehr gibt, bricht dort ab. Der Server nennt den Zug, an dem er ' +
|
||||||
'Züge bringt er zum Bahnhof zurück. Er nimmt keine offenen Karten mehr, die er nicht spielen ' +
|
'stehen blieb, und lässt die Datei unangetastet — nichts geht verloren, und mit v0.8.0.9 ' +
|
||||||
'kann, nur um sie wieder abzuwerfen, und baut deshalb seinen Bezirk aus — mehr Gleis, mehr ' +
|
'lässt sich ein solches Spiel zu Ende spielen. Die Korrektur: Es wurde über einen Zug HINTER ' +
|
||||||
'Industrien und viel öfter Umfahrgleise, weil er Gleis jetzt dort legt, wo es etwas zu tun ' +
|
'dem abfahrenden entschieden, was niemanden betrifft — und kostete real eine Kollision, weil ' +
|
||||||
'eröffnet. Und er setzt keinen zweiten Zugteil (Second Section) mehr aus Versehen ein, wenn ' +
|
'das Halten des abfahrenden Zuges das einzige Ankunftsgleis belegt hielt und der Zug dahinter ' +
|
||||||
'er einen Sonderzug starten wollte, was viele seiner Zusammenstöße verursachte. Über Tausende ' +
|
'hineinfuhr und zerstört wurde. Auch ein entgegenkommender Zug hinter Ihnen hält Sie nicht ' +
|
||||||
'simulierter Spiele gemessen, erzielt ein Bot jetzt etwa 4,8 Einnahmen pro Spiel, vorher etwa ' +
|
'mehr auf. Außerdem: Während Ihr Spielfeld die Züge der anderen nachholt, zeigt der ' +
|
||||||
'−0,3. Im Hintergrund wird jetzt einmal pro Stellung statt mehrfach berechnet, wohin ein Zug ' +
|
'Bildschirm, wessen Zug Sie gerade sehen, statt den zu nennen, auf den das Spiel wirklich ' +
|
||||||
'fahren kann, was den Server beim Prüfen von Zügen etwa dreimal schneller macht — bei ' +
|
'wartet; und die Historie eilt dem Spielfeld nicht mehr voraus — Zeilen erscheinen, während ' +
|
||||||
'nachweislich identischem Spielverlauf.',
|
'ihre Züge gezeichnet werden, und Überspringen zeigt weiterhin alles sofort. Der Name auf der ' +
|
||||||
|
'Divisionskarte ist wieder lesbar. Eine Neutrassierung nennt die umgewandelte Karte, und die ' +
|
||||||
|
'Karte blinkt auf der Landkarte. Ein Zug als Superintendent liest sich „Superintendent Player ' +
|
||||||
|
'Tom“, und keine Zeile nennt einen Spieler doppelt. Und wer einen Platz hat, kann sein Spiel ' +
|
||||||
|
'jetzt als Datei vom Spielbildschirm herunterladen — bisher konnte das nur das Solospiel.',
|
||||||
pl_PL:
|
pl_PL:
|
||||||
'Zawiera Station Master v0.8.0.9 — boty grają znacznie lepiej, a serwer pracuje szybciej. GRY ' +
|
'Zawiera Station Master v0.8.0.10 — poprawki z pierwszych testowych partii wieloosobowych. ' +
|
||||||
'W TOKU NA TYM SERWERZE NIE SĄ ZAGROŻONE i zostaną normalnie wznowione: żadna zasada się nie ' +
|
'**GRY W TOKU NA TYM SERWERZE CZĘSTO NIE ZOSTANĄ WZNOWIONE PO TEJ AKTUALIZACJI**, ponieważ ' +
|
||||||
'zmieniła. Bot zajmujący wolne miejsce planuje teraz całą swoją turę manewrów przed pierwszym ' +
|
'poprawiono zasadę mówiącą, kiedy Superintendent ma rozstrzygać, a zapis gry jest odtwarzany ' +
|
||||||
'ruchem, więc dostarcza wagony do zakładów, które mogą je obsłużyć, zamiast decydować ruch po ' +
|
'według bieżących zasad: gra zawierająca rozstrzygnięcie, o które już się nie pyta, ' +
|
||||||
'ruchu, i odprowadza pociągi przyspieszone z powrotem na stację. Nie bierze już odkrytych ' +
|
'zatrzymuje się w tym miejscu. Serwer podaje, przy którym ruchu stanął, i zostawia plik ' +
|
||||||
'kart, których nie może zagrać, tylko po to, by je odrzucić, więc rozbudowuje swój okręg — ' +
|
'nietknięty — nic nie ginie, a powrót do v0.8.0.9 pozwala taką grę dokończyć. Poprawka: ' +
|
||||||
'więcej torów, więcej zakładów i znacznie częściej tory objazdowe, bo kładzie teraz tor tam, ' +
|
'pytano o pociąg ZA odjeżdżającym, co nikogo nie dotyczy — i kosztowało to prawdziwe ' +
|
||||||
'gdzie otwiera to coś do zrobienia. I nie uruchamia już przez przypadek Drugiej Sekcji, gdy ' +
|
'zderzenie, bo zatrzymanie odjeżdżającego pociągu blokowało jedyny tor przyjazdowy, a pociąg ' +
|
||||||
'chciał wypuścić pociąg dodatkowy, co powodowało wiele jego zderzeń. Zmierzone w tysiącach ' +
|
'z tyłu wjeżdżał na niego i ulegał zniszczeniu. Pociąg oddalający się za tobą też już cię nie ' +
|
||||||
'symulowanych gier: bot zarabia teraz około 4,8 Przychodu na grę, wcześniej około −0,3. W tle ' +
|
'zatrzymuje. Ponadto: gdy twoja plansza nadrabia ruchy innych, ekran mówi, czyj ruch ' +
|
||||||
'to, dokąd pociąg może pojechać, jest teraz liczone raz na pozycję zamiast kilka razy, co ' +
|
'oglądasz, zamiast wskazywać tego, na kogo gra naprawdę czeka, a historia nie wyprzedza już ' +
|
||||||
'czyni serwer około trzy razy szybszym przy sprawdzaniu ruchów — przy udowodnionym ' +
|
'planszy — wiersze pojawiają się wraz z rysowaniem ruchów, a Pomiń nadal pokazuje wszystko ' +
|
||||||
'identycznym przebiegu gry.',
|
'naraz. Nazwa na mapie Dywizji znów jest czytelna. Zmiana trasy podaje, którą kartę ' +
|
||||||
|
'przekształcono, a karta miga na mapie. Ruch wykonany jako Superintendent brzmi ' +
|
||||||
|
'„Superintendent Player Tom”, i żaden wiersz nie nazywa gracza dwa razy. A gracz przy stole ' +
|
||||||
|
'może teraz pobrać swoją grę jako plik z ekranu gry — wcześniej potrafił to tylko tryb ' +
|
||||||
|
'samotny.',
|
||||||
fr_FR:
|
fr_FR:
|
||||||
'Inclut Station Master v0.8.0.9 — les bots jouent beaucoup mieux, et le serveur travaille ' +
|
'Inclut Station Master v0.8.0.10 — corrections issues des premières parties de test ' +
|
||||||
'plus vite. LES PARTIES EN COURS SUR CE SERVEUR NE SONT PAS AFFECTÉES et reprendront ' +
|
'multijoueurs. **LES PARTIES EN COURS SUR CE SERVEUR NE REPRENDRONT SOUVENT PAS APRÈS CETTE ' +
|
||||||
'normalement : aucune règle n’a changé. Un bot qui occupe une place libre planifie désormais ' +
|
'MISE À JOUR**, car une règle sur le moment où le Superintendent doit trancher a été ' +
|
||||||
'tout son tour de manœuvres avant son premier mouvement, si bien qu’il livre les wagons aux ' +
|
'corrigée, et une partie sauvegardée est rejouée selon les règles actuelles : une partie ' +
|
||||||
'industries capables de les traiter au lieu de décider coup par coup, et il ramène les trains ' +
|
'contenant une décision que l’on ne demande plus s’arrête là. Le serveur indique à quel coup ' +
|
||||||
'accélérés en gare. Il ne prend plus de cartes face visible qu’il ne peut pas jouer pour les ' +
|
'il s’est arrêté et laisse le fichier intact — rien n’est perdu, et réinstaller la v0.8.0.9 ' +
|
||||||
'défausser aussitôt, donc il développe son district — plus de voie, plus d’industries et bien ' +
|
'permet de terminer une telle partie. La correction : on faisait trancher au sujet d’un train ' +
|
||||||
'plus souvent des voies d’évitement, parce qu’il pose désormais la voie là où elle ouvre ' +
|
'DERRIÈRE celui qui partait, ce qui ne concerne personne — et cela a coûté une vraie ' +
|
||||||
'quelque chose à faire. Et il ne lance plus une Deuxième Section par erreur quand il voulait ' +
|
'collision, car retenir le train au départ gardait l’unique voie d’arrivée occupée et le ' +
|
||||||
'faire partir un train supplémentaire, ce qui causait beaucoup de ses collisions. Mesuré sur ' +
|
'train derrière y arrivait et était détruit. Un train qui s’éloigne derrière vous ne vous ' +
|
||||||
'des milliers de parties simulées, un bot gagne maintenant environ 4,8 de Revenu par partie, ' +
|
'retient plus non plus. Également : pendant que votre plateau rattrape les coups des autres, ' +
|
||||||
'contre environ −0,3 auparavant. En coulisses, le calcul des endroits où un train peut aller ' +
|
'l’écran indique de qui est le coup que vous regardez au lieu de nommer celui que la partie ' +
|
||||||
'se fait désormais une fois par position au lieu de plusieurs, ce qui rend le serveur environ ' +
|
'attend vraiment, et l’historique ne devance plus le plateau — les lignes apparaissent à ' +
|
||||||
'trois fois plus rapide pour vérifier les coups — avec un jeu prouvé identique.',
|
'mesure que leurs coups sont dessinés, et Passer affiche toujours tout d’un coup. Le nom sur ' +
|
||||||
|
'la carte de la Division est de nouveau lisible. Un Réalignement indique quelle carte il a ' +
|
||||||
|
'convertie, et la carte clignote sur la carte. Un coup joué en tant que Superintendent se lit ' +
|
||||||
|
'« Superintendent Player Tom », et aucune ligne ne nomme deux fois un joueur. Enfin, un ' +
|
||||||
|
'joueur assis peut désormais télécharger sa propre partie sous forme de fichier depuis ' +
|
||||||
|
'l’écran de jeu, ce que seul le solitaire permettait.',
|
||||||
},
|
},
|
||||||
migrations: {
|
migrations: {
|
||||||
/**
|
/**
|
||||||
@@ -154,6 +177,21 @@ export const current = VersionInfo.of({
|
|||||||
* and after each step, and the game's `test/route-cache.test.ts` pins the split. Everything else is the
|
* and after each step, and the game's `test/route-cache.test.ts` pins the split. Everything else is the
|
||||||
* developer bot, whose past moves are already intents in a save. Games in progress resume.
|
* developer bot, whose past moves are already intents in a save. Games in progress resume.
|
||||||
*
|
*
|
||||||
|
* v0.8.0.10 IS THE FIRST BUMP THAT BREAKS RESUMES, AND IT DOES SO DELIBERATELY. It corrects WHEN §8.1
|
||||||
|
* asks the Superintendent to rule (Gitea#26): a train on a card BEHIND the one departing is nobody's
|
||||||
|
* concern, and was being counted. A save is the seed and the moves replayed through the CURRENT rules,
|
||||||
|
* so a game holding a `mainline.clearance` the rules no longer ask for is refused at that move with
|
||||||
|
* NO_PENDING_DECISION — `tryResumeSession` reports which move, and `index.ts` logs the refusal and
|
||||||
|
* leaves the file alone. Measured before shipping: 40 four-seat co-op games recorded by bots under
|
||||||
|
* v0.8.0.9 and replayed under this release — 28 stop, usually 5-40% of the way in. Jesse's call
|
||||||
|
* (2026-09-15): no games in progress need keeping, so this ships without a per-game switch for the old
|
||||||
|
* rule, and the release notes say so in all five locales. A game worth finishing can be finished by
|
||||||
|
* putting v0.8.0.9 back — the save file is untouched.
|
||||||
|
*
|
||||||
|
* The rest of the release is the screen and the log — who the board says it is waiting on, what the
|
||||||
|
* history says and when it says it, a flash on a realigned Mainline card — plus one new read-only
|
||||||
|
* route (`GET /api/save?token=…`) that hands a seated player their own save. None of it is on disk.
|
||||||
|
*
|
||||||
* A NEW STATE FIELD CANNOT STRAND A SAVE HERE, which is the property worth naming rather than
|
* A NEW STATE FIELD CANNOT STRAND A SAVE HERE, which is the property worth naming rather than
|
||||||
* re-deriving: a `SavedGame` holds `{ seed, config, history }` and NOT a serialised `GameState`.
|
* re-deriving: a `SavedGame` holds `{ seed, config, history }` and NOT a serialised `GameState`.
|
||||||
* Resuming calls `createGame` — which fills the new field from `setup.ts` — and then replays the
|
* Resuming calls `createGame` — which fills the new field from `setup.ts` — and then replays the
|
||||||
|
|||||||
+1
-1
Submodule station-master updated: 76c6e103b3...4adf149ba5
Reference in New Issue
Block a user