#81 follow-ups: peer warp must not stomp the POV vortex; panel draw probe; mech3 ghost symbols

Two field observations from watching the 4-node stress, both run down:

1. "A respawn happened without the blue vortex" -- REAL.  The translocation
   effect is ONE global slot shared by the POV lifecycle and the world-anchored
   peer sphere (a port extension).  A peer's un-wreck arriving while the local
   pilot's own collapse/wait/expand was in flight overwrote gWarpPhase/gWarpPOV
   and killed the POV vortex.  Invisible before the respawn fix only because
   overlapping respawns barely existed; now they are routine.  Fix: the POV
   lifecycle owns the slot -- BTStartWarpEffect self-skips while it is active
   ([tloc] peer warp SKIPPED).  2-node bench: 20/20 POV collapse+expand pairs,
   9 peer spheres played, 11 correctly skipped; solo: 8/8 pairs unchanged.

2. "Comms panel counted no deaths" -- panel machinery CORRECT; the 4-node
   zeros were the bench's own CPU crush (4 core-pinned instances starved the
   PilotList to <0.6 Hz, so rows redrew minutes-stale).  Added the arbiter:
   [score] panel DRAW slot/pilot/kills/deaths edge log (BT_SCORE_LOG) -- the
   2-node rerun drew 0->9 / 0->11 live on both nodes, local AND replicated
   (SBMIRROR rows confirm owner->replicant tally flow on all 4 stress nodes).

Also: the mech3 offline-authoring stubs declared every <Subsystem>::DefaultData
as Entity__SharedData while the real statics are Simulation__SharedData (this
engine derives Entity FROM Simulation) -- ~20 ghost symbols /FORCE silently
resolved to garbage.  DefaultData half fixed (SubsystemDefaultData now returns
the true common base Simulation::SharedData); the CreateStreamedSubsystem stub
signatures remain wrong (nested SubsystemResource* + ResourceFile*), are
cold (no callers), and are tracked in open-questions + gotchas §6 stub-typedef
corollary.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Joe DiPrima
2026-07-30 10:10:29 -05:00
co-authored by Claude Fable 5
parent 830a976192
commit bfa1b04990
8 changed files with 106 additions and 15 deletions
+14
View File
@@ -2878,6 +2878,20 @@ void BTStartWarpExpandPOV()
//
void BTStartWarpEffect(float x, float y, float z)
{
// ONE warp slot (the authentic effect is POV-only; this world-anchored peer
// sphere is the port extension). The local pilot's own death/respawn
// lifecycle OWNS the slot: a peer's un-wreck landing mid-collapse/wait/expand
// would overwrite gWarpPhase/gWarpPOV and kill the POV vortex ("my respawn
// had no blue vortex"). Harmless before the #81 respawn fix only because
// overlapping respawns barely existed; now they are routine. Skip the peer
// sphere instead -- the observer still sees the un-wreck swap itself.
if (gWarpPhase != 0 && gWarpPOV)
{
if (getenv("BT_TLOC_LOG"))
DEBUG_STREAM << "[tloc] peer warp SKIPPED (own POV warp active, phase "
<< gWarpPhase << ")\n" << std::flush;
return;
}
BTWarpApplyScaleEnv();
gWarpPhase = 2; // ExpandReveal
gWarpT = 0.0f;