diff --git a/context/multiplayer.md b/context/multiplayer.md index 3ec0bb8..9bf7cf7 100644 --- a/context/multiplayer.md +++ b/context/multiplayer.md @@ -921,3 +921,13 @@ melee, 26 deaths: 26/26/26/26 with zero duplicate-death swallows and zero `inst= The same-frame double-credit this closed (direct+splash lethal pair racing the deferred death transition) is gotcha §25 — the death mode now flips synchronously inside the damage pass, matching part_012.c:14761. + +## Application control is OWNER-ONLY — the replicant player StopMission leak (2026-08-12) [T2] +`Player::ManageApplicationStatus` (the 3.0s mission-end fade countdown → the second StopMission → +`Application::Stop()`) is now gated `GetInstance() != ReplicantInstance` (PLAYER.cpp). Un-gated, a +REPLICANT player copy — whose simulationState mirrors the remote master's MissionEndingState +through its record header, and whose fadeTimeRemaining was never armed (≤0 at first tick) — +dispatched StopMission instantly and killed the mission loop before the fade could render. On an +8-player steam node ANY of the 7 replicant copies cut the end window to ~one record heartbeat: +the FIELD half of #156's "no fade". Same authority discipline as scoring (masters emit, mirrors +display); receipts: `[fade-clk]` single 124-tick countdown + phases 1→5 (`fade_bench.sh`). diff --git a/context/test-harness.md b/context/test-harness.md index 1ade308..bafb85d 100644 --- a/context/test-harness.md +++ b/context/test-harness.md @@ -213,6 +213,7 @@ sleep ; kill $relay; bt_kill_ours | `proj_ttl_bench.sh` | #168 flight clocks: probe fizzles at exactly 5.0s / burn+10s; field phase: authentic ttl stamps, none early, no stale-point hits | BT_PROJ_TEST probe + BT_PROJ_LOG | | `gen_edge_bench.sh` | #154 warning edge: 4/4 trigger fixups, trip edge FIRED, recovery + respawn silent | BT_GEN_HEAT injection + BT_AUDIO_EDGE | | `xfire_bench.sh` | #165 destroyed-weapon gate: pre-kill FIRED, post-kill only REFUSED, survivor unaffected | BT_KILL_SUBSYS + named `[emitter] FIRED` | +| `fade_bench.sh` | #156 fade: armed + phases 1-5 both nodes, single 3.0s countdown, end edge on simState=4 | relay-clocked 40s round, BT_FADE_LOG | | `eject_canary.sh` / `ram_bench.sh` / `relaunch_bench.sh` | eject suicide arithmetic / ram-rattle eligibility set / ordered-exit no-zombies | (night-15 fix wave) | Multi-node rig notes: extend the egg by CLONING the 1602 pilot page (the kd4/kd8 scripts show