From edff8fdb96c94e6aec34af19c71a1369f76c2c40 Mon Sep 17 00:00:00 2001 From: Joe DiPrima Date: Tue, 4 Aug 2026 11:36:28 -0500 Subject: [PATCH] handoff: Steam build gate shipped (both halves) + LAN caveat --- scratchpad/SESSION_HANDOFF_20260803.md | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/scratchpad/SESSION_HANDOFF_20260803.md b/scratchpad/SESSION_HANDOFF_20260803.md index d4443a4..32d9a2f 100644 --- a/scratchpad/SESSION_HANDOFF_20260803.md +++ b/scratchpad/SESSION_HANDOFF_20260803.md @@ -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).