import sys sys.path.insert(0, r"C:\git\bt411\scratchpad\night7") import gitea V = "**Field-verified on 4.11.883, playtest night 15 (2026-08-10, 8-player steam lobbies):** " # ------------------------- CLOSES (Oracle: Pass) ------------------------- gitea.comment(149, V + "Oracle: **'#149 Pass'** -- and at first touch: *\"quick " "launch in glass butter smooth frame rate.\"* The dirty-skip fix holds " "under a full 8-player night. Closing the performance regression.") gitea.close(149) gitea.comment(150, V + "Oracle: **'#150 Pass -- We tested with missiles " "exclusively as well as direct fire.'** Kill credit is now exactly +1 " "per kill. Closing. ⚠ The DEATH side of the scoreboard failed the same " "night (multi-counted deaths, no -500 penalty) -- that is a separate " "defect, filed fresh with tonight's evidence (see the new death-tally " "ticket).") gitea.close(150) gitea.comment(69, V + "Oracle: 'Pass -- Denkou is correct spelling' (era " "witness). Closing.") gitea.close(69) gitea.comment(71, V + "Oracle: Pass. RajelAran at first touch: *\"plasma " "window looks good, close minimizes and can restore.\"* Closing.") gitea.close(71) gitea.comment(39, V + "Oracle: Pass -- no input reaches the sim before the " "scene presents. Closing.") gitea.close(39) gitea.comment(56, V + "Oracle: Pass -- MFD buttons stayed aligned through the " "night. Closing (#50 was already folded into #155).") gitea.close(56) gitea.comment(25, V + "Oracle: Pass -- the Turn binding channel works on " "pads. Closing.") gitea.close(25) gitea.comment(24, V + "Oracle: Pass -- no stuck hat/look views tonight. " "Closing; reopen if any controller re-latches.") gitea.close(24) # ------------------------- FAIL updates (stay open) ----------------------- gitea.comment(27, V + "Oracle: **'#27 Fail -- still spreading damage to " "multiple panels with both Gauss and AFCs.'** Note the DISTINCTION: the " "original defect here was damage TYPE (ballistic scored as explosive) -- " "that fix was verified empirically and stands. What Oracle observed is " "the SPREAD, which is #112 (AFC rounds shotgun across zones) now " "confirmed to cover Gauss too. Keeping this open until a retest can " "separate type from spread cleanly; #112 gets tonight's confirmation.") gitea.comment(112, V + "Oracle confirms the shotgun spread persists on 883 " "and extends to **Gauss** as well as AFCs (single slugs spreading " "damage across multiple panels). Bumping priority -- this now distorts " "ballistic feel for two weapon families.") gitea.comment(38, V + "Oracle: **Fail, with the repro finally precise** -- " "*\"Only host initially spawns with the correct mech, badge and patch " "color. Everyone else initially spawned with their chosen mech color " "but a red patch and VGL badge. Host appears correct to others and " "self. Nothing changed when respawning.\"* So: mech COLOR replicates " "for everyone; BADGE + PATCH fall back to defaults (lgo6/red) for every " "non-host player, persistently. That points at the egg/paint codes " "reaching only the host's instance -- the [paint] lines in tonight's " "four staged logs should show exactly which codes each node resolved.") gitea.comment(128, V + "Oracle: **'Fail -- happens every single time I " "collide with terrain at speed, needs to be at some minimum speed. " "Confirmed.'** Deterministic above a speed threshold. Stays high on " "the list.") gitea.comment(135, V + "Oracle: Fail -- still live. Plus a new edge-staleness " "detail from tonight: *\"Loop 6 leak indication and alarm stopped after " "some time, but buttons on loops keep flashing even after alarms went " "silent. After ~1 minute loop 3 button stopped flashing. Loop 6 NEVER " "stopped.\"* So the flash state can outlive the condition -- edge " "consistency between alarm, button flash, and leak state is part of " "this ticket now.") gitea.comment(136, "Oracle's 'Clarify' from the sweep got answered by a live " "case tonight (Rajel, 21:10 ET, Sunder LRM10 loop): leak ALARMED -> " "loop turned OFF -> re-OPENED: **no alarm despite a 3-triangle leak** " "-> off and on again -> alarmed. So the re-arm of the leak alarm on " "loop-reopen is inconsistent -- one cycle silent, next cycle correct. " "That is the repro to chase.") gitea.comment(102, "Night-15 note (Lynx): *\"possible issue getting out of " "reverse -- monitor\"* -- adjacent to this ticket's run/reverse " "transition; logging it here so the reports accumulate in one place.") # ------------------------- NEW TICKETS ------------------------------------ r = gitea.call("/issues", "POST", {"title": "DEATH tally multi-counts (up to +6 at once) and the -500 death penalty " "is not applied -- 883, 8-player night", "body": "**The night-15 headline.** Kill credit is fixed (#150 passed) but the DEATH " "side of the scoreboard is broken, badly:\n\n" "- Sauron: *\"getting 2 deaths each time he died\"* -- consistent, every death.\n" "- Elengil's death count *\"way off\"*; Greywolf captured the moment a single " "death took the counter to 12 (screenshot in Discord).\n" "- Oracle's summary: *\"Multiple death behavior is not consistent... even " "awarded 6 deaths at once.\"*\n" "- Rajel's scoreboard screenshot: *\"the math, uh, ain't mathing.\"*\n" "- Oracle + Lynx independently: **\"Deaths did not detract 500 points\"** -- " "the deathPenalty never applies (it demonstrably worked before: the -499 " "eject arithmetic on night 14 required it).\n\n" "**Shape analysis:** +6-at-once in an ~8-player lobby smells like " "once-per-PEER counting -- each node's copy of the death emitting its own " "increment, so the count scales with lobby size (2x in small matches, ~6x " "in the big one).\n\n" "**Regression flag (honest):** 883 is the first fielded build with the #150 " "report gates (46ff8dd: report tail master-only + once-per-death latch). " "Kills went from doubled to exact; deaths went from correct-ish to " "multi-counted with no penalty. The death/score chain (VehicleDead / " "PLAYER_DEAD / deathPenalty application) must be audited against the " "binary's authority model the same way the kill chain was -- including " "whether the penalty application rode a path the new gate severed.\n\n" "**Evidence staged (scratchpad/night15/):** four day logs (Dave/SCREECH, " "rajel/GAMERSLAB, acaci/ZEUS, Michael/XIAOLONG) with SCORE/DEATH receipt " "lines, plus two matchlogs (Elengil's 21:36 round, Lynx's 22:36 round) -- " "matchcheck.py reconciliation is the first move. Elengil's and Conn Man's " "day logs still need re-downloading (their zips did not land).\n\n" "Priority: NEXT INVESTIGATION."}) n_death = r["number"] r = gitea.call("/issues", "POST", {"title": "Mission end leaves players FROZEN in the ended mission; separate " "hang-on-exit (host and non-host) -- 3 reporters, 883", "body": "Three occurrences on night 15:\n" "- 21:41 ET: Conn Man *\"remained in the game after the mission ended, " "frozen view of how the game ended.\"*\n" "- 22:48 ET: same for Greywolf AND Lynx at mission end.\n" "- Lynx: *\"BTL4 hang on exit, hosting\"* (screenshot); Conn Man also had " "one exit hang requiring Task Manager.\n\n" "So two shapes, possibly one root: (a) the round-end transition never " "fires for some players (left standing in the dead world instead of the " "exit-to-menu flow), and (b) the process hangs at exit. NOT the old #93 " "(that was an access-violation crash class, closed as aged out) -- these " "are hangs/no-transitions under the 8-player steam shape.\n\n" "Evidence: the staged night-15 logs cover Lynx's hosted round (matchlog " "22:36) -- the mission-end ladder (StopMission -> RunMissions return -> " "relaunch) on each machine is the place to diff. Conn Man's log still " "needs collecting (his zip did not land; note his log rolled to " "steam_20260810.1.log)."}) n_frozen = r["number"] r = gitea.call("/issues", "POST", {"title": "Persistent 'hanging laser beam' attached to own mech's legs, moves " "with rudder, persists until death (Conn Man, 2 games, 883)", "body": "Conn Man, two games: *\"a hanging laser beam. It would persist until I " "would die. Not sure if it is mine, or from someone else's shot. The beam " "seemed to be attached to my legs and would move with my rudder inputs.\"* " "Screenshots in Discord.\n\n" "A beam visual whose lifetime never expires and whose origin is bound to a " "mech segment (legs, riding the yaw input) -- beam lifecycle/attachment " "bug, likely replication-side (he could not tell whose shot it was). " "Death (entity rebuild) clears it.\n\n" "His log is still to be collected (zip did not land). Peers' logs from the " "same rounds are staged."}) n_beam = r["number"] r = gitea.call("/issues", "POST", {"title": "X'd-out (destroyed) energy weapons can still FIRE -- animation " "replicates to peers (Rajel, 883)", "body": "Rajel, 23:28 ET, Standard mode: *\"ER PPC, ERS on left arm, ERS on right " "arm. Weapons could still be fired even though x'd out. The weapon " "animation is displayed to other players when fired and possibly did no " "damage to the target mech, we didn't fire enough times.\"*\n\n" "The destroyed-weapon fire gate was fixed and A/B-verified in 5410371 " "(#86: both fire gates read the never-written Destroyed cell). Either " "this regressed, or the X'd-out state he saw is a DIFFERENT condition " "than the Destroyed cell the gates read (e.g. unpowered/unavailable " "level-7 -- #30's remainder). Need his log's fire/damage receipts for " "those weapons to tell which."}) n_xfire = r["number"] r = gitea.call("/issues", "POST", {"title": "Weapon-ready desync: MFD full green vs HUD not-ready; LRM10 refused " "to fire until a round was ejected (Oracle, 883)", "body": "Oracle: *\"LRM 10 displayed as ready on the MFD (full green circle). HUD " "showed weapon not ready and it would not fire. Had to eject a round to " "get it to fire.\"*\n\n" "So three state consumers disagreed: MFD said ready, HUD said not-ready, " "fire gate agreed with the HUD -- and the AMMO-EJECT path cleared the " "condition (jam semantics: ejecting the chambered round clears a jam). " "Likely the MFD ready-circle reads a different cell than the HUD/fire " "gate (the #30 weapon-state presentation remainder, now with a field " "repro). The eject-clears-it detail says the underlying state was a JAM " "the MFD failed to show."}) n_ready = r["number"] r = gitea.call("/issues", "POST", {"title": "Reticle lock circle absent on ALL target mechs for a stretch " "(Oracle, 23:32 ET, 883) -- monitor", "body": "Oracle: *\"At 10:32PM I had no reticle circle appear on any target " "mechs.\"* One stretch, one session, after the #131 per-frame lock-ring " "fix was verified earlier in the night. Distinct from #147 (range caret). " "Monitor-class until it recurs; his log for that window is staged " "(Dave/SCREECH-PC)."}) n_ret = r["number"] r = gitea.call("/issues", "POST", {"title": "ERA QUESTION + table check: AFC50 lands armor damage beyond LRM " "range -- authentic 4.10 ranges?", "body": "Oracle, 21:14 ET: *\"Firing AFC50 from Avatar scoring confirmed hits with " "armor damage on Elengil out to beyond LRM range on the range scale.\"*\n\n" "Question: does the 4.10 weapon table give the AFC50 a max range beyond " "the LRM's? Verifiable directly from the decomp weapon data (range " "fields) -- if the table says yes, this is authentic and closes; if not, " "projectile range enforcement needs a look. Era witnesses' memory of AC " "vs LRM reach also welcome."}) n_afc = r["number"] r = gitea.call("/issues", "POST", {"title": "Lobby screen UI: leave-lobby button clipped at bottom edge; host " "lobby cluttered at 8 players (Lynx, 883)", "body": "Two cosmetic-but-real lobby items from the first 8-player night:\n" "1. *\"On lobby screen the leave lobby button is cut off at the bottom " "edge of the window (half shown).\"*\n" "2. Lynx's screenshot: *\"8 player lobby host clutter\"* -- the host view " "does not lay out cleanly at 8 members.\n\n" "The menu window is fixed-size; 8-player rosters need either a taller " "client rect or tighter row layout."}) n_ui = r["number"] print("created:", n_death, n_frozen, n_beam, n_xfire, n_ready, n_ret, n_afc, n_ui)