diff --git a/scratchpad/SESSION_HANDOFF_20260803.md b/scratchpad/SESSION_HANDOFF_20260803.md index ed7b71d..241eb97 100644 --- a/scratchpad/SESSION_HANDOFF_20260803.md +++ b/scratchpad/SESSION_HANDOFF_20260803.md @@ -321,3 +321,19 @@ BUILD RITUAL (stale-link flake, bit 3x today): rm build/Release/btl4.exe before the build, string-verify the new exe before deploying. FIELD NOTE: locking strictly tighter now; if era testers want linger, that becomes a sourced investigation (Draco's memory, #131 comment). + +### NIGHT-12 LOG SCAN (2026-08-05): 3 staged players, ~49 sessions, all 774 +- SKATING DISCRIMINATED: zero [ghost] lines anywhere -> records flowed -> + #52/#130 is the GAIT/LEG-STATE replication path, NOT starvation. Next: + 2-node gait-state bench. +- #134 CONFIRMED from data: 3 punch-outs -> 3 DWH notices -> deaths, ZERO + score awards any sign (SCORE_LOG forced on). Mechanism: eject = self- + damage killBonus; kill-scoring never engages for self-kill; authentic + debit likely rides the DEFERRED id-0x16 kill-report block -- that + reconstruction is the fix. +- Oracle's 8:45PM "crash": 7-line session dying between "lobby up" and + the room screen, no exception -- filed with fingerprint (new issue). +- Conn Man winsock header: ONE failed boot (Steam not ready), relaunched + 46s later on Steam -- benign, no mixed transport. +- #135/#137: field logs lack lamp/heat instrumentation -- RECOMMEND + adding BT_LAMP_LOG=1 to players/*.bat next cut; both need local repro. diff --git a/scratchpad/night12/logscan_file.py b/scratchpad/night12/logscan_file.py new file mode 100644 index 0000000..24bb0b4 --- /dev/null +++ b/scratchpad/night12/logscan_file.py @@ -0,0 +1,20 @@ +import sys +sys.path.insert(0, r"C:\git\bt411\scratchpad\night7") +import gitea + +gitea.comment(52, """**Night-12 log scan -- SKATING DISCRIMINATED [field data]:** zero [ghost] lines across all three staged player logs (~49 sessions, the detector live in build 774 and lab-verified to fire at 601 frames of starvation). The skating mechs were RECEIVING update records the whole time -- skating is NOT starvation. That pins this squarely on the gait/leg-state replication path (#130 family): the records arrive, the legs don't play them. Next step is a 2-node gait-state bench (force a leg-anim state divergence and watch the replicant's gait records apply), not more field waiting.""") + +gitea.comment(134, """**Night-12 log scan -- CONFIRMED + mechanism localized.** Oracle's log: 3 punch-outs -> 3 [eject] DeathWithoutHonor notices -> 3 death cycles + clean respawns, and ZERO score award lines of ANY sign all night (BT_SCORE_LOG was forced on in the field bats, so absence is evidence). Not a clamp-at-zero illusion. Code side: the punch-out charges killBonus-sized EXPLOSIVE SELF-damage (inflicting = self, mech.cpp @0049f88e path) -- the 'cost' is supposed to emerge from scoring that death, but the kill-scoring path never engages for a self-kill. The authentic debit most plausibly rides the DEFERRED id-0x16 damage/kill report block (@0x4a04da-0x4a07b2, the stats plumbing documented in combat-damage.md as deferred) -- reconstructing that block is the fix path, not a quick patch.""") + +gitea.comment(135, """Night-12 log scan: Rajel's log carries NO lamp/annunciator lines -- [techstat] is BT_LAMP_LOG-gated and the field bats only force MATCHLOG/SCORE/DEATH. So the leak-no-flash report can't be checked from this night's logs. Two actions: (1) add BT_LAMP_LOG=1 to players/*.bat for the next cut (edge-gated, near-zero noise; would have answered this in one grep); (2) local repro: leak a loop in the docked/normal layout and watch the [techstat] edges vs the lamp state.""") + +gitea.comment(137, """Night-12 log scan: Oracle's final gameplay session (22:23:54, 15k lines) confirms the drop had 3 death cycles / 4 resets, but the field logs carry no heat-family instrumentation, so the maxed-myomer state itself left no trace. Needs a local repro (respawn cycles with the heat/myomer logs on) -- or it waits for the next field night with richer envs.""") + +i = gitea.create( + "Silent process death between 'lobby up' and the room screen (Oracle, 774, one occurrence)", + """Night-12, SCREECH-PC 20:41:15 local ("Just crashed at 8:45PM ET trying to launch a lobby / attempt two worked / no changes"). Log fingerprint: the session is SEVEN lines long -- boot, steamnet up (2 roster tokens incl. self), `[lobby] host: lobby up (1097752...)`, then nothing. No exception reached the log; the next session (20:46:03) hosted clean. So the death is in the window between CreateLobby succeeding and the room screen running -- RunRoom window creation / the first roster paint / the first SteamAPI_RunCallbacks of the room. One occurrence in ~49 sessions across 3 players. Candidates to keep in mind: the room WndProc's first paint reading member data mid-join, or a Steam callback re-entering during window setup. Low priority until it repeats -- but the fingerprint is now on file, and any future 7-line session ending at 'lobby up' is this issue.""", + labels=[1,2]) +print("crash issue:", i['number']) + +gitea.comment(108, """Night-12 log scan, transport detail for the record: all three staged players ran 774 with Steam netcode up in every gameplay session. Conn Man's pasted 'SteamAPI_Init failed -- staying on Winsock' header was ONE failed boot at 19:33:06 (Steam client not ready); he relaunched 46 seconds later and was on Steam for all 17 subsequent sessions. No mixed-transport confound existed.""") +print("done")