From 589c7cfb57f1ef14a2da01d88ffd235927a0ac15 Mon Sep 17 00:00:00 2001 From: Erik Date: Sun, 21 Jun 2026 20:12:45 +0200 Subject: [PATCH] =?UTF-8?q?feat(slice2):=20arrival-gate=20probe=20?= =?UTF-8?q?=E2=80=94=20log=20NotReady=E2=86=92Ready=20flip=20with=20landbl?= =?UTF-8?q?ock=20count?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- src/AcDream.Core/Physics/PhysicsDiagnostics.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/AcDream.Core/Physics/PhysicsDiagnostics.cs b/src/AcDream.Core/Physics/PhysicsDiagnostics.cs index 06a3180c..51ee9977 100644 --- a/src/AcDream.Core/Physics/PhysicsDiagnostics.cs +++ b/src/AcDream.Core/Physics/PhysicsDiagnostics.cs @@ -31,6 +31,19 @@ public static class PhysicsDiagnostics public static bool ProbeResolveEnabled { get; set; } = Environment.GetEnvironmentVariable("ACDREAM_PROBE_RESOLVE") == "1"; + /// + /// Retail teleport readiness gate (ยง3.4, 2026-06-21). When true, every transition of + /// the TeleportArrivalReadiness verdict (NotReady โ†’ Ready / Impossible) emits one + /// [arrival-gate] line: the destination cell id, landblock id, verdict, + /// PhysicsEngine.LandblockCount at the moment it flips, and whether the + /// flip was forced (Impossible) or natural (Ready). + /// + /// Initial state from ACDREAM_PROBE_RESOLVE=1 โ€” shares the existing probe + /// flag because this is a readiness-path extension; no new env var needed. + /// + public static bool ProbeArrivalGateEnabled { get; set; } = + Environment.GetEnvironmentVariable("ACDREAM_PROBE_RESOLVE") == "1"; + /// /// When true, every change to PlayerMovementController.CellId /// emits one [cell-transit] line: old โ†’ new cell, current @@ -534,6 +547,7 @@ public static class PhysicsDiagnostics public static void ResetForTest() { ProbeResolveEnabled = false; + ProbeArrivalGateEnabled = false; ProbeCellEnabled = false; ProbeBuildingEnabled = false; ProbeCellSetEnabled = false;