Station Log — November 9, 2026
Station Log — November 9, 2026
PORTS.md, apps/heliopause/README.md: the portal's tsnet node is tailnet only (the pilot, 2026-11-08: "are all the docs up to date?") (burrito-app-server)
Worked across 4 repo(s) today.
- burrito-app-server: 1 change(s)
- heliopause-client: 4 change(s)
- heliopause-server: 2 change(s)
- pax-rts-001: 5 change(s)
12 other change(s) of note.
- PORTS.md, apps/heliopause/README.md: the portal's tsnet node is tailnet only (the pilot, 2026-11-08: "are all the docs up to date?") (burrito-app-server)
- no tour-key teleport in an installed game, and an assets/unreleased/ that never ships (the pilot, 2026-11-09, item 4 "keep secrets off the client" and the tour key: "Dev builds only", "Unreleased folder"). The T key teleported the ship body to body for every player with the default keys (its case had no dev gate); it now works only outside an installed layout: the development tree and the scripted runs made from it (shot.sh, the RENDERING.md tour), never an install. make-installer.sh no longer packs assets/unreleased/ (work in progress: on no player's machine and in no login-page hangar, which lists every .glb in assets/models/, until the commit that moves it into its real folder; a README there says so) or assets/test/ (the tests' own files): modeler_demo.glb, the pax-modeler exporter's cross-check that only gltf_anim_test.odin reads, moved there (the test reads the new path and fails if it is missing; MODELS.md follows). 219 asset files ship. CLAUDE.md states what ships and that the install is checked against the signed list. Release notes renamed v0.394.0 -> v0.395.0 (still unreleased) with the T key's line. Checked: build, test.sh green (447 + 30 + 20, the Windows type-check, the kit's 537). Not released (heliopause-client)
- the install's signed file list, and an installer without the game's sources (the pilot, 2026-11-09: players should not see, or at least not change, the game's files; items 1 and 2 of the plan). (1) make-installer.sh leaves out what a Linux install never reads: the shader sources (.frag/.vert/.glsl; the game loads the .spv), the Metal .msl (gpu_shader.odin reads them only on a GPU without SPIR-V, i.e. macOS), assets/audio/README.md and the .gitkeep files: 220 asset files of the 297 tracked. (2) Every release carries files.manifest: "f " per file and "l " per link, made over the finished stage by the new scripts/make-manifest.sh and signed by the release key (sign-release.sh --manifest, statement "pax-helios install manifest\n\n\nsha256:\n", on the passphrase pipe the installer's signatures use). The launcher checks the install in the version check (src/updater/manifest.odin files_verify): every listed file's size and hash, every link's target, nothing extra under assets/; top-level extras (the old names' links, the launcher an update set aside) are left alone; a list missing, malformed, for another version or platform, or not the compiled key's counts as changed. Changed files turn the check into an update: the newest build is reinstalled in place, "game files changed - reinstalling v…", PLAY locked until the files match; once per version (a repaired- marker in the private update folder; still different after it, the launcher stops and says so), so a wrong list can never loop on testers' machines. A stamp cache (files-.ok: size, mtime, inode per file, tied to the list's hash) spares re-hashing: the full hash is 4.6 s on fries' CPU, which has no SHA instructions. make-installer.sh asks the build's own launcher about the stage first (the new --verify-files []), so a list that would fail every install never ships. Not anti-cheat (a changed launcher can skip it; the server must not trust clients), and LAUNCHER.md says so. Checked: four new updater tests (a signed install passes with top-level extras; another version, platform or key refused; a same-size edit, a size change, a removed file, an extra asset, a re-pointed link and an edited list fail, the first four named; no list; line shapes and paths; the cache skipping unchanged stamps, catching a moved one and ignoring another list's), removing the hash comparison fails the same-size edit; make-installer.sh with a throwaway key built the stage (232 entries), refused it with the compiled key, and the stage verified against the throwaway key in 4.6 s, then failed with an edited collision file and an added level; test.sh green (447 + 30 + 20, the Windows type-check, the kit's 537). docs/LAUNCHER.md "The install's signed file list"; docs/WINDOWS.md: the zip needs the list before Windows resumes. Release notes v0.394.0 carry the unreleased v0.392.0 and v0.393.0 too. Not released: the pilot runs scripts/release.sh; the repair path is checked live after that (heliopause-client)
- the launcher's download bar shows the speed beside the size (the pilot, 2026-11-09: "add a download speed in MBs to the launcher. Something like this: '45 / 174 MB - 20MBs'"), as "45 / 174 MB - 20 MB/s". The speed is the bytes landed over the last three seconds, from the .part size the bar already reads each frame (cmd/launcher/download_rate.odin, Rate_Meter on App): a window, since the .part grows in curl's bursts and a per-frame figure would flicker; shown once there is a second of samples; whole MB/s from 10 up, tenths below, so a slow link still reads as moving; counted from the first sample, so a resumed .part's head start is not speed; a count that goes down starts the meter over; a stall reads 0.0 MB/s; and no speed once every byte is in (the launcher is checking the file then). Checked: three new launcher tests (the window at 20 MB/s, a resumed head start, the one-second wait, a stall, a restart, the formats, the widest label 225 of the bar's 340 px), test.sh green (447 + 26 + 20, the Windows type-check, the kit's 537 checks); for real, this launcher stamped v0.389.0 in a v0.389.0 install in a throwaway HOME on a private Xvfb took the live portal's v0.391.0: the bar read "3 / 174 MB - 1.3 MB/s", then about 4 MB/s, matching the count's climb of ~10 MB per 2.4 s frame, and "174 / 174 MB" with no speed through the checks. Unreleased v0.392.0 (the login page straight into the universe) ships with it: docs/RELEASE-NOTES/v0.393.0.md carries both. docs/LAUNCHER.md records it; heliopause-server's PLAYER-MANUAL follows. Not released: the pilot runs scripts/release.sh (heliopause-client)
- from the login page straight into the universe (the pilot, 2026-11-09: "after entering my username and password, the transition into the universe shows what I think is the demo level for a few seconds. I don't want that"). It was the built-in station cluster: the client builds it at start-up for flying offline, a login closed the page the moment the hello went out, and until the server's first system was built (synchronously, in that frame) the draw chain fell through to the cluster. Now the login page holds, reading ENTERING THE UNIVERSE with the button ENTERING..., until a system built since this login exists (entering, entering_built: after EXIT TO LOGIN the last session's system is still loaded), then gives way to it. The first system builds on the arrival worker, as under a gate's tunnel, so the page keeps moving. Online the cluster is freed when the login lands; LAUNCH with an empty server builds it again when no world is loaded. A denied login comes back to the page with its reason (the ENTERING line cleared, so the reason shows); a socket that dies before the first system, or no system within ENTER_TIMEOUT_S (45 s), comes back with the reason too; Enter cannot start a second login meanwhile. Checked on a private Xvfb with lavapipe against the scratch server, a throwaway HOME and an unowned pilot name (legacy login, no password): the released v0.391.0 showed the cluster during the login, this build shows the page then the Helios Prime cockpit and never the cluster (optimized, the build under the page 1.4-1.6 s against v0.391.0's 1.26 s frozen frame); EXIT TO LOGIN and a second login hold the page again until the new system; hudtest with no password comes back to the page with the server's reason, LAUNCH live. test.sh green (447 + 26 + 17, a new shell_entering_test; the Windows type-check, the kit's 537 checks). docs/LAUNCHER.md records it; release notes in docs/RELEASE-NOTES/v0.392.0.md. Not released: the pilot runs scripts/release.sh (heliopause-client)
Auto-generated Station Log. 2 agent session(s) · 12 commit(s) across 4 repo(s) · Models: deepseek-v4-pro:cloud · Releases: v20261109.1.0, v20261109.0.0.5, v20261109.0.0.4 · Built by Claude · Orchestrated by Hermes