Files
station-master-startos/startos/versions/current.ts
T
JesseandClaude Opus 5 bd802cb512 0.7.9:0 — bundle Station Master v0.7.9
Submodule pinned to v0.7.9 (6058f6c), current.ts bumped in place, release
notes rewritten in all five locales, README.md and instructions.md
updated. No new version file and no migration: the outgoing 0.7.8:0's
`up` was empty, which is versions.md's common case.

GAMES IN PROGRESS DO NOT CARRY OVER, and both docs lead with it.

v0.7.9 changes a rule. advance.ts gated §3.4's collision check on
`mode === 'competitive' || mode === 'coop'`, while SOLO_CONFIG carried
both limits (3 a Day, 5 total) and the setup screen offered them as live
settings with "the game ends in a loss" printed beside them. A solitaire
player could set a limit of 1 and crash all game. Jesse's ruling was that
the settings do what they say, so the gate went rather than the controls.

A solitaire save is { seed, history, rules? } where `rules` is the house
rules only — the collision caps are NOT in the save, so a restore takes
today's defaults. A 0.7.8 save therefore replays under live caps and
stops at the move that crossed one.

MEASURED WITH A CONTROL, because two earlier attempts at measuring it
were wrong. With the caps disabled, 1200 of 1200 generated solitaire
saves replay every intent — that is the control. Of those, 74 games
crossed the 5-collision total and 70 of the 74 truncate once the caps
are enforced; one replays 141 of its 532 intents and stops. So it is
"will break for anyone who crashed", not "may break". The earlier run
that reported no breakage had in fact been failing every replay at
intent 2 on an unrelated house-rules mismatch, and said nothing at all —
the control is the only reason that was caught.

It fails safe: the save is left untouched and the game declines to open
rather than loading a position the rules could not have produced, so a
player who cares can put 0.7.8 back and finish. Nothing in this package
can act on it either way — a solitaire save lives in the player's own
browser, not on this server. MULTIPLAYER GAMES ARE UNAFFECTED:
competitive and coop have been inside that gate all along.

TWO THINGS FIXED IN PASSING, both pre-existing and both in the way of
the release check. UPDATING.md was not prettier-formatted. And there was
no .prettierignore, so `prettier --check .` walked the bundled
application — a separate repo with its own style, which this package does
not own and does not commit — and reported 171 warnings it could do
nothing about. That check now passes clean, which is the point of having
it in the release sequence at all.

Verified: npm run check clean, prettier clean, make x86 packs as
v0.7.9:0. NOT yet installed on a box and NOT played.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YTaNBL1jVxNqgFdjHkHoo3
2026-08-30 20:41:27 -04:00

112 lines
8.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk'
export const current = VersionInfo.of({
// `<upstream>:<downstream>` — the upstream half tracks the bundled Station Master tag exactly
// (`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
// upstream half moves.
version: '0.7.9:0',
releaseNotes: {
en_US:
'Bundles Station Master v0.7.9. — READ FIRST: SOLITAIRE GAMES IN PROGRESS DO NOT CARRY OVER. ' +
"Solitaire's two collision limits (3 in a Day, 5 in a game) were offered as settings, said the " +
'game would end in a loss, and were never actually checked. They now do what they say — so a ' +
'saved solitaire game that has had collisions will refuse to reopen. It fails safe: the save is ' +
'left untouched and the game simply declines rather than corrupting anything. Finish what you ' +
'care about before updating. Multiplayer games on this server are unaffected. Also in this ' +
'release: the end-of-game screen now asks whether to play one more Day, a question that was ' +
'being drawn underneath it and could not be reached; "waiting on" names the person and what ' +
'they are being asked, instead of saying nobody; the game settings moved off the top line into ' +
'a This Game card, with the running collision counts taking their place; the Office Area ' +
'show/hide control offers all three modes instead of cycling past one; the history reads newest ' +
'first; and a Heavy Grade card now shows which way it climbs.',
es_ES:
'Incluye Station Master v0.7.9. — LEE ESTO PRIMERO: LAS PARTIDAS DE SOLITARIO EN CURSO NO SE ' +
'CONSERVAN. Los dos límites de colisiones del solitario (3 por Día, 5 por partida) se ofrecían ' +
'como ajustes, decían que la partida terminaría en derrota y nunca se comprobaban. Ahora hacen ' +
'lo que dicen, así que una partida de solitario guardada que haya tenido colisiones se negará a ' +
'abrirse. Falla de forma segura: el archivo guardado queda intacto y la partida simplemente se ' +
'niega, sin corromper nada. Termina lo que te importe antes de actualizar. Las partidas ' +
'multijugador de este servidor no se ven afectadas. Además: la pantalla de fin de partida ya ' +
'pregunta si quieres jugar un Día más, una pregunta que se dibujaba debajo y era inalcanzable; ' +
'"esperando a" nombra a la persona y lo que se le pregunta, en vez de decir que a nadie; los ' +
'ajustes de la partida salen de la línea superior a una tarjeta Esta Partida, y en su lugar ' +
'aparecen los recuentos de colisiones; el control de mostrar/ocultar del Área de Oficina ofrece ' +
'los tres modos en vez de saltarse uno; el historial se lee de lo más reciente a lo más ' +
'antiguo; y una carta de Pendiente Fuerte muestra hacia dónde sube.',
de_DE:
'Enthält Station Master v0.7.9. — ZUERST LESEN: LAUFENDE SOLOSPIELE BLEIBEN NICHT ERHALTEN. Die ' +
'beiden Kollisionsgrenzen des Solospiels (3 pro Tag, 5 pro Partie) wurden als Einstellungen ' +
'angeboten, sagten eine Niederlage an und wurden nie geprüft. Jetzt tun sie, was sie sagen — ' +
'ein gespeichertes Solospiel mit Kollisionen lässt sich also nicht mehr öffnen. Es scheitert ' +
'sicher: der Spielstand bleibt unangetastet und das Spiel verweigert schlicht, statt etwas zu ' +
'beschädigen. Beende vor dem Update, was dir wichtig ist. Mehrspielerpartien auf diesem Server ' +
'sind nicht betroffen. Außerdem: der Endbildschirm fragt jetzt, ob ein weiterer Tag gespielt ' +
'werden soll — diese Frage wurde bisher darunter gezeichnet und war unerreichbar; "wartet auf" ' +
'nennt die Person und ihre Frage, statt niemanden zu nennen; die Spieleinstellungen wandern aus ' +
'der Kopfzeile in eine Karte Dieses Spiel, an ihre Stelle treten die laufenden Kollisionszähler; ' +
'die Anzeigesteuerung des Amtsbereichs bietet alle drei Modi, statt an einem vorbeizuschalten; ' +
'der Verlauf liest sich neueste zuerst; und eine Steigungskarte zeigt jetzt ihre Richtung.',
pl_PL:
'Zawiera Station Master v0.7.9. — PRZECZYTAJ NAJPIERW: TRWAJĄCE GRY SOLO NIE ZOSTANĄ ZACHOWANE. ' +
'Dwa limity kolizji w grze solo (3 na Dzień, 5 na partię) były oferowane jako ustawienia, ' +
'zapowiadały przegraną i nigdy nie były sprawdzane. Teraz robią to, co mówią — więc zapisana ' +
'gra solo, w której doszło do kolizji, odmówi otwarcia. Zawodzi bezpiecznie: zapis pozostaje ' +
'nietknięty, a gra po prostu odmawia, niczego nie uszkadzając. Dokończ to, na czym ci zależy, ' +
'przed aktualizacją. Gry wieloosobowe na tym serwerze nie są dotknięte. Ponadto: ekran końca ' +
'gry pyta teraz, czy zagrać jeszcze jeden Dzień — to pytanie było rysowane pod nim i ' +
'nieosiągalne; "czeka na" podaje osobę i pytanie, zamiast mówić, że nikogo; ustawienia gry ' +
'przeniosły się z górnego wiersza do karty Ta Gra, a ich miejsce zajęły bieżące liczniki ' +
'kolizji; przełącznik Biura oferuje wszystkie trzy tryby zamiast omijać jeden; historia czyta ' +
'się od najnowszych; a karta Stromego Podjazdu pokazuje, w którą stronę się wznosi.',
fr_FR:
"Inclut Station Master v0.7.9. — À LIRE D'ABORD : LES PARTIES SOLO EN COURS NE SONT PAS " +
'CONSERVÉES. Les deux limites de collisions du solo (3 par Jour, 5 par partie) étaient proposées ' +
'comme réglages, annonçaient une défaite et n’étaient jamais vérifiées. Elles font désormais ce ' +
'qu’elles disent : une partie solo sauvegardée ayant connu des collisions refusera de ' +
's’ouvrir. L’échec est sûr — la sauvegarde reste intacte et la partie refuse simplement, sans ' +
'rien corrompre. Terminez ce qui compte avant de mettre à jour. Les parties multijoueurs de ce ' +
'serveur ne sont pas affectées. Par ailleurs : l’écran de fin demande maintenant s’il faut ' +
'jouer un Jour de plus, question qui était dessinée en dessous et restait inaccessible ; ' +
'« en attente de » nomme la personne et ce qu’on lui demande, au lieu de ne nommer personne ; ' +
'les réglages quittent la ligne du haut pour une carte Cette Partie, remplaçés là par les ' +
'compteurs de collisions ; le contrôle d’affichage du Bureau propose les trois modes au lieu ' +
'd’en sauter un ; l’historique se lit du plus récent au plus ancien ; et une carte de Forte ' +
'Rampe montre desormais dans quel sens elle monte.',
},
migrations: {
/**
* NOTHING TO CARRY, AND THIS TIME THAT IS NOT THE SAME AS "NOTHING BREAKS".
*
* v0.7.9 changes a RULE. `advance.ts` gated §3.4's collision check on
* `mode === 'competitive' || mode === 'coop'`, so a solitaire game carried both limits
* (`SOLO_CONFIG`: 3 a Day, 5 total), offered them on the New Game screen as live settings, told
* the player the game would end in a loss — and never checked them. Jesse's ruling was that the
* settings should do what they say, so the gate is gone.
*
* A SOLITAIRE SAVE IS A SEED PLUS THE MOVES PLAYED, and it does NOT carry the collision caps —
* `Save` is `{ seed, history, rules? }`, where `rules` is the house rules only. The caps come
* from today's defaults on restore. So a save recorded under 0.7.8 replays under 0.7.9 with the
* caps now live, and a game that crossed one stops replaying at that point.
*
* MEASURED RATHER THAN ASSUMED, because the first two attempts at measuring it were wrong. With
* the caps disabled, 1200 of 1200 generated solitaire saves replay every intent — that is the
* control, and without it the experiment says nothing (an earlier run reported "no saves break"
* when in fact every replay was failing at intent 2 for an unrelated house-rules mismatch). Of
* those, 74 games crossed the 5-collision total, and 70 of the 74 truncate once the caps are
* enforced: one replays 141 of its 532 intents and stops. So this is "will break for anyone who
* crashed", not "may break".
*
* IT FAILS SAFE. The save file is left untouched and the game declines to open rather than
* loading a position the rules could not have produced, so a player who cares can put 0.7.8 back
* and finish. The release notes lead with it in all five locales.
*
* NOTHING HERE CAN ACT ON IT EITHER WAY: a solitaire save lives in the player's own browser, not
* on this server. A MULTIPLAYER game in progress is unaffected — competitive and coop have been
* inside that gate all along, so their rules did not move.
*/
up: async ({ effects }) => {},
down: IMPOSSIBLE,
},
})