0.7.6:0 — bundle Station Master v0.7.6
Submodule pinned to v0.7.6 (b4f09f0). current.ts bumped in place at 0.7.6:0 — no new version file, no migration: fixes a client-side routing bug in the solitaire door that v0.7.5 introduced (a browser that had ever held a multiplayer seat could not reach the new setup screen at all), so every game in progress carries over without exception. Verified: npm run check clean, prettier clean, make x86 packs as v0.7.6:0, installed on phoenix.local — logs show the empty migration running and both games in progress (WHISTLE-4086, COAL-7370) resuming with their same intent counts, and the served index.html confirmed to link the solitaire door to ./play.html?solitaire. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AdG46Ja2PEDBkpqiDazMoX
This commit is contained in:
@@ -13,10 +13,16 @@ 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.7.5.** A client-side flow change: a genuinely fresh visit to the solitaire page
|
**Bundled version: 0.7.6.** Fixes the solitaire door 0.7.5 introduced: a browser that had ever held a
|
||||||
now opens a setup screen and asks for the game's options before dealing, the same question the
|
multiplayer seat could not reach the new setup screen at all — a bare page load could not tell
|
||||||
multiplayer lobby has asked before a game starts since 0.6.0. No rule the server enforces changed,
|
"clicked Play solitaire" apart from "reloaded mid multiplayer game", so the door lost to whatever
|
||||||
so this update carries every game in progress, on the server and in a browser, without exception.
|
game or lobby that browser last touched. The door now marks its intent explicitly (`?solitaire`), the
|
||||||
|
same fix `?lobby` already carries for the door on the other side. Client-side only; every game in
|
||||||
|
progress carries over.
|
||||||
|
|
||||||
|
**0.7.5 was a client-side flow change**: a genuinely fresh visit to the solitaire page opens a setup
|
||||||
|
screen and asks for the game's options before dealing, the same question the multiplayer lobby has
|
||||||
|
asked before a game starts since 0.6.0.
|
||||||
|
|
||||||
**0.7.4 bundled three rules corrections** off the tracker (Gitea#13, #5, #19), all of them places
|
**0.7.4 bundled three rules corrections** off the tracker (Gitea#13, #5, #19), all of them places
|
||||||
where the code and the cards disagreed.
|
where the code and the cards disagreed.
|
||||||
|
|||||||
@@ -35,6 +35,11 @@ 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.7.6.** The **Play solitaire** door on the front page now reliably reaches
|
||||||
|
solitaire. If this browser had ever taken a seat at a multiplayer table, the door used to lose to
|
||||||
|
that game or lobby instead — a plain page load couldn't tell "I clicked Play solitaire" apart from
|
||||||
|
"I reloaded mid multiplayer game". Fixed; nothing else changed.
|
||||||
|
|
||||||
**What changed in 0.7.5.** Solitaire now asks before it deals. A genuinely fresh visit to the
|
**What changed in 0.7.5.** Solitaire now asks before it deals. A genuinely fresh visit to the
|
||||||
solitaire page opens a setup screen with the full set of options — game type, starting hand, where
|
solitaire page opens a setup screen with the full set of options — game type, starting hand, where
|
||||||
an Extra may start, the revenue rates, victory conditions, and the optional rules — the same
|
an Extra may start, the revenue rates, victory conditions, and the optional rules — the same
|
||||||
|
|||||||
+39
-45
@@ -5,60 +5,54 @@ export const current = VersionInfo.of({
|
|||||||
// (`versions.md`'s consistency checklist), so bumping the submodule pin and bumping this are one
|
// (`versions.md`'s consistency checklist), so bumping the submodule pin and bumping this are one
|
||||||
// action. The downstream half moves only for packaging-only changes, and RESETS to `:0` when the
|
// action. The downstream half moves only for packaging-only changes, and RESETS to `:0` when the
|
||||||
// upstream half moves.
|
// upstream half moves.
|
||||||
version: '0.7.5:0',
|
version: '0.7.6:0',
|
||||||
releaseNotes: {
|
releaseNotes: {
|
||||||
en_US:
|
en_US:
|
||||||
'Bundles Station Master v0.7.5 \u2014 solitaire asks before it deals. A first visit to the solitaire ' +
|
'Bundles Station Master v0.7.6 \u2014 fixes the solitaire door introduced in v0.7.5. A browser that ' +
|
||||||
'page now opens a setup screen with the full set of options \u2014 game type, starting hand, where an ' +
|
"had ever held a multiplayer seat could not reach solitaire's new setup screen at all: a bare " +
|
||||||
'Extra may start, the revenue rates, victory conditions, and the optional rules \u2014 the same question ' +
|
'page load could not tell "clicked Play solitaire" apart from "reloaded mid multiplayer game", ' +
|
||||||
"the multiplayer lobby already asks before a game starts. Press Deal when you're ready. A saved game, " +
|
'so the door lost to whatever game or lobby this browser last touched. The door now marks its ' +
|
||||||
'a shared link carrying a seed, or a setup screen already answered all skip straight past it. Nothing ' +
|
'intent explicitly, so it reaches solitaire every time. No rules changed, so games in progress ' +
|
||||||
'about the rules changed, so games in progress and saved games are unaffected by this update.',
|
'are unaffected.',
|
||||||
es_ES:
|
es_ES:
|
||||||
'Incluye Station Master v0.7.5: la partida en solitario pregunta antes de repartir. La primera visita a ' +
|
'Incluye Station Master v0.7.6: corrige la puerta de solitario introducida en v0.7.5. Un ' +
|
||||||
'la p\u00e1gina de solitario abre ahora una pantalla de configuraci\u00f3n con todas las opciones \u2014 tipo de ' +
|
'navegador que alguna vez ocup\u00f3 un asiento multijugador no pod\u00eda llegar en absoluto a la nueva ' +
|
||||||
'partida, mano inicial, d\u00f3nde puede empezar un tren Extra, las tarifas de ingresos, las condiciones de ' +
|
'pantalla de configuraci\u00f3n del solitario: una carga de p\u00e1gina simple no distingu\u00eda "puls\u00e9 Jugar ' +
|
||||||
'victoria y las reglas opcionales \u2014 la misma pregunta que el lobby multijugador ya hace antes de que ' +
|
'en solitario" de "recargu\u00e9 en medio de una partida multijugador", as\u00ed que la puerta perd\u00eda ' +
|
||||||
'empiece una partida. Pulsa Repartir cuando est\u00e9s listo. Una partida guardada, un enlace compartido ' +
|
'frente a cualquier partida o sala de espera que ese navegador hubiera tocado por \u00faltima vez. La ' +
|
||||||
'con una semilla, o una pantalla de configuraci\u00f3n ya respondida, la omiten directamente. Las reglas ' +
|
'puerta ahora marca su intenci\u00f3n expl\u00edcitamente, as\u00ed que llega al solitario siempre. Las reglas ' +
|
||||||
'no han cambiado, as\u00ed que las partidas en curso y las guardadas no se ven afectadas por esta ' +
|
'no han cambiado, as\u00ed que las partidas en curso no se ven afectadas.',
|
||||||
'actualizaci\u00f3n.',
|
|
||||||
de_DE:
|
de_DE:
|
||||||
'Enth\u00e4lt Station Master v0.7.5 \u2014 Solospiele fragen jetzt vor dem Austeilen. Ein erster Besuch der ' +
|
'Enth\u00e4lt Station Master v0.7.6 \u2014 behebt die in v0.7.5 eingef\u00fchrte Solo-T\u00fcr. Ein Browser, der ' +
|
||||||
'Solo-Seite \u00f6ffnet jetzt einen Einrichtungsbildschirm mit allen Optionen \u2014 Spieltyp, Starthand, wo ' +
|
'jemals einen Mehrspieler-Platz innehatte, konnte den neuen Solo-Einrichtungsbildschirm ' +
|
||||||
'ein Extrazug beginnen darf, die Erl\u00f6ss\u00e4tze, die Siegbedingungen und die optionalen Regeln \u2014 ' +
|
'\u00fcberhaupt nicht erreichen: ein einfacher Seitenaufruf konnte "Solo spielen angeklickt" nicht ' +
|
||||||
'dieselbe Frage, die die Mehrspieler-Lobby schon vor Spielbeginn stellt. Dr\u00fccke Austeilen, wenn du ' +
|
'von "mitten im Mehrspieler-Spiel neu geladen" unterscheiden, sodass die T\u00fcr gegen jedes Spiel ' +
|
||||||
'bereit bist. Ein gespeichertes Spiel, ein geteilter Link mit einem Seed oder ein bereits beantworteter ' +
|
'oder jede Lobby verlor, die dieser Browser zuletzt ber\u00fchrt hatte. Die T\u00fcr markiert ihre Absicht ' +
|
||||||
'Einrichtungsbildschirm \u00fcberspringen ihn direkt. An den Regeln hat sich nichts ge\u00e4ndert, laufende ' +
|
'jetzt ausdr\u00fccklich und erreicht damit immer den Solo-Modus. An den Regeln hat sich nichts ' +
|
||||||
'und gespeicherte Spiele sind von diesem Update nicht betroffen.',
|
'ge\u00e4ndert, laufende Spiele sind nicht betroffen.',
|
||||||
pl_PL:
|
pl_PL:
|
||||||
'Zawiera Station Master v0.7.5 \u2014 gra solo pyta, zanim rozda karty. Pierwsza wizyta na stronie gry ' +
|
'Zawiera Station Master v0.7.6 \u2014 naprawia drzwi do gry solo wprowadzone w v0.7.5. Przegl\u0105darka, ' +
|
||||||
'solo otwiera teraz ekran ustawie\u0144 z pe\u0142nym zestawem opcji \u2014 typ gry, pocz\u0105tkowa r\u0119ka, gdzie ' +
|
'kt\u00f3ra kiedykolwiek zajmowa\u0142a miejsce w grze wieloosobowej, w og\u00f3le nie mog\u0142a dotrze\u0107 do nowego ' +
|
||||||
'mo\u017ce zacz\u0105\u0107 poci\u0105g dodatkowy, stawki przychod\u00f3w, warunki zwyci\u0119stwa i zasady opcjonalne ' +
|
'ekranu ustawie\u0144 gry solo: zwyk\u0142e wczytanie strony nie odr\u00f3\u017cnia\u0142o "klikni\u0119to Zagraj solo" od ' +
|
||||||
'\u2014 to samo pytanie, kt\u00f3re lobby gry wieloosobowej zadaje ju\u017c przed rozpocz\u0119ciem gry. Naci\u015bnij ' +
|
'"prze\u0142adowano w trakcie gry wieloosobowej", wi\u0119c drzwi przegrywa\u0142y z dowoln\u0105 gr\u0105 lub ' +
|
||||||
'Rozdaj, gdy b\u0119dziesz gotowy. Zapisana gra, udost\u0119pniony link z ziarnem (seed) lub ju\u017c wype\u0142niony ' +
|
'poczekalni\u0105, kt\u00f3rej ta przegl\u0105darka ostatnio dotkn\u0119\u0142a. Drzwi teraz jawnie oznaczaj\u0105 sw\u00f3j ' +
|
||||||
'ekran ustawie\u0144 pomijaj\u0105 go od razu. Zasady si\u0119 nie zmieni\u0142y, wi\u0119c gry w toku i zapisane gry ' +
|
'zamiar, wi\u0119c zawsze prowadz\u0105 do gry solo. Zasady si\u0119 nie zmieni\u0142y, wi\u0119c gry w toku nie s\u0105 ' +
|
||||||
'nie s\u0105 dotkni\u0119te t\u0105 aktualizacj\u0105.',
|
'dotkni\u0119te.',
|
||||||
fr_FR:
|
fr_FR:
|
||||||
'Inclut Station Master v0.7.5 \u2014 la partie solo demande maintenant avant de distribuer. Une premi\u00e8re ' +
|
'Inclut Station Master v0.7.6 \u2014 corrige la porte solo introduite dans la v0.7.5. Un navigateur ' +
|
||||||
'visite de la page solo ouvre d\u00e9sormais un \u00e9cran de configuration avec toutes les options \u2014 type ' +
|
'ayant d\u00e9j\u00e0 occup\u00e9 un si\u00e8ge en multijoueur ne pouvait pas du tout atteindre le nouvel \u00e9cran de ' +
|
||||||
'de partie, main de d\u00e9part, o\u00f9 un train suppl\u00e9mentaire peut d\u00e9marrer, les taux de revenu, les ' +
|
'configuration du solo : un simple chargement de page ne distinguait pas \u00ab a cliqu\u00e9 sur Jouer en ' +
|
||||||
'conditions de victoire et les r\u00e8gles optionnelles \u2014 la m\u00eame question que le lobby multijoueur ' +
|
'solo \u00bb de \u00ab a recharg\u00e9 en pleine partie multijoueur \u00bb, si bien que la porte perdait face \u00e0 la ' +
|
||||||
"pose d\u00e9j\u00e0 avant le d\u00e9but d'une partie. Appuyez sur Distribuer quand vous \u00eates pr\u00eat. Une partie " +
|
"derni\u00e8re partie ou salle d'attente que ce navigateur avait touch\u00e9e. La porte marque d\u00e9sormais " +
|
||||||
'sauvegard\u00e9e, un lien partag\u00e9 contenant une graine, ou un \u00e9cran de configuration d\u00e9j\u00e0 rempli, ' +
|
"son intention explicitement, elle atteint donc toujours le solo. Les r\u00e8gles n'ont pas chang\u00e9, " +
|
||||||
"passent directement outre. Les r\u00e8gles n'ont pas chang\u00e9, les parties en cours et sauvegard\u00e9es ne " +
|
'les parties en cours ne sont donc pas affect\u00e9es.',
|
||||||
'sont donc pas affect\u00e9es par cette mise \u00e0 jour.',
|
|
||||||
},
|
},
|
||||||
migrations: {
|
migrations: {
|
||||||
/**
|
/**
|
||||||
* NOTHING TO CARRY, AND NOTHING FOR ANY SAVE TO TRIP OVER EITHER.
|
* STILL NOTHING TO CARRY. v0.7.6 fixes a routing bug in the solitaire door that v0.7.5
|
||||||
*
|
* introduced (a browser remembering a multiplayer seat could not reach the setup screen at
|
||||||
* v0.7.5 is a client-side flow change — a setup screen asked before a genuinely fresh solitaire
|
* all) — client-side only, no rule the engine enforces and no save-format change. A game in
|
||||||
* visit deals, matching what the multiplayer lobby already asks before a game starts. It touches
|
* progress, on the server or in a browser, resumes exactly as it would have on v0.7.5.
|
||||||
* no rule the engine enforces and no shape a save or a game record is written in, unlike v0.7.4's
|
|
||||||
* three rules corrections (see that entry's history for what THAT migration had to reason about).
|
|
||||||
* A game already in progress, on either the multiplayer server or in a player's browser, resumes
|
|
||||||
* exactly as it would have on v0.7.4.
|
|
||||||
*/
|
*/
|
||||||
up: async ({ effects }) => {},
|
up: async ({ effects }) => {},
|
||||||
down: IMPOSSIBLE,
|
down: IMPOSSIBLE,
|
||||||
|
|||||||
+1
-1
Submodule station-master updated: 3e961496b0...b4f09f05cb
Reference in New Issue
Block a user