handoff: Steam build gate shipped (both halves) + LAN caveat

This commit is contained in:
Joe DiPrima
2026-08-04 11:36:28 -05:00
parent d050db5cae
commit edff8fdb96
+28
View File
@@ -175,3 +175,31 @@ verified EXACT both columns (4-node deaths + 2-node cross-player kills,
matchcheck-reconciled). NEW 717 item: BUILD HANDSHAKE at join/relay (version
already in matchlog HDR) -- refuse mismatched builds loudly. Instrumentation
block unchanged (it discriminates skew vs real bug).
### BUILD HANDSHAKE: SHIPPED for Steam (2026-08-04, 22f732f + d050db5)
The #108 build-gate item above is DONE for the Steam path (game/glass/
btl4lobby.cpp, ~60 lines, in the 717 cut):
- Host lobby stamped btl4ver=BT_VERSION_STRING (unique per zip -- btversion
is an always-run custom target, re-stamps from git every build; verified
build/btversion.h ticked 749->754 across today's commits).
- Joiner search filters on exact btl4ver match; the no-lobby log names the
local build so field reports self-diagnose (#68 lesson). Post-join
GetLobbyData verify covers invites/unstamped hosts: loud log + LeaveLobby.
- HOST HALF (the part that catches OLD exes, i.e. the actual Conn Man case):
PublishSelf adds per-member bv=build; the GO mint SKIPS any non-self
member with absent/mismatched bv -> no token in btl4map -> the stale
client's own pre-existing "the host's map is missing us" bail fires (that
code ships in every old build already). Room screen marks such members
[WRONG BUILD -- WILL NOT LAUNCH] so the host sees it BEFORE pressing GO.
- Old-build member experience: sits in room, GO fires, their exe fails the
join back to the FE. They get no in-client message (impossible to add
text to an exe they already have) -- the host-side room marker + REJECT
LobbyLog line are the operator's tools.
- Verified: link clean vs the documented 20-stub /FORCE baseline
(build-and-run.md:28), gate strings confirmed in the deployed exe
(ascii + utf16 scans), content/btl4.exe = committed tree (4.11.754).
NOT yet field-tested (needs two Steam machines; single-account can't
exercise join-vs-host). First 717 Steam night proves it.
- NOT COVERED: LAN/relay (join.bat / btconsole relay) -- a stale zip can
still join a LAN session. Relay-side version check = separate item if
wanted (version already rides the matchlog HDR for post-hoc detection).