0.7.0:3 — bundle Station Master v0.7.0

The submodule pin is the version; nothing else about the package changed. Four game types in the
lobby, the whole rule set readable before taking a seat, leaving and rejoining a game, and sound in
a multiplayer game for the first time — all upstream, all through the same server this package has
always run.

- startos/versions/current.ts — 0.7.0:3, with release notes in all five languages.
- instructions.md — how a game is set up now, and what Leave / Forget mean for a seat.
- README.md — the bundled version, and a limitation spelled out: a player's identity lives in their
  browser, so a lost token cannot be recovered from this package.
- UPDATING.md — how to pack a test build from work that is not pushed yet, which is how v0.7.0 was
  played before release, and why the downstream digit moves for each one.

The downstream digit is :3 rather than :0 because three test packs were installed on the box while
v0.7.0 was being played; publishing :0 now would be a downgrade it would refuse.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016JczK5i33ZNSf2PtzZqdhS
This commit is contained in:
Jesse
2026-08-23 05:50:38 -04:00
co-authored by Claude Opus 5
parent e84c640067
commit d26d44d9e2
5 changed files with 95 additions and 18 deletions
+37
View File
@@ -40,6 +40,43 @@ change is packaging-only and the bundled game has not moved.
> anywhere, which is the only reason a downgrade was harmless: `0.5.2:0` sorts *below* `1.0.0:0`,
> so an installed copy had to be removed rather than updated over.
## Building a test package from work that is not pushed yet
The Dockerfile copies `station-master/` out of the build context, so what is packed is whatever is
in that directory — the submodule's *pin* only matters for reproducibility, not for `make`. That is
what makes it possible to put a build on a test box before the game is committed, tagged or pushed,
which is how v0.7.0 was played before release:
```bash
# point the submodule at a local commit that exists nowhere else yet
cd station-master && git fetch --no-tags /path/to/station-master main && git checkout --detach FETCH_HEAD
# or, for work that is not even committed, copy the working tree in
rsync -a --delete --exclude .git --exclude node_modules --exclude dist \
/path/to/station-master/ station-master/
cd .. && make x86 && make install
```
**Move the DOWNSTREAM digit for each test build** — `0.7.0:1`, `:2`, `:3`. StartOS installs an
update, not a re-install, so a rebuild at the same version has nothing to install over; and the
downstream half is exactly the right one to move, since the upstream game has not been released
again between two test packs. Whichever digit the box ends up on is the one the real release should
carry: publishing a *lower* one afterwards is a downgrade the box will refuse.
**Before committing the wrapper**, put the pin back on a real tag — a submodule pointing at a commit
that only exists on one machine is a package nobody else can build:
```bash
cd station-master && git fetch --tags origin && git checkout v<version>
cd .. && git add station-master
```
The pack's git stamp says `-modified` for the whole of this, which is the flag that a build came
from a dirty tree. Never publish one of those.
---
If the jump carries a multiplayer protocol or persistence-format change (check the game repo's
`CHANGELOG.md` and `docs/architecture/multiplayer.md`), read it before bumping: a running
server's saved games are stamped with `engineVersion` and refuse to resume under a mismatched