feat(core): Phase W Stage 0 — [cell-swept] diagnostic (swept vs static cell, no behavior change)

Add ProbeSweptEnabled (ACDREAM_PROBE_SWEPT=1) to PhysicsDiagnostics mirroring
ProbeCellEnabled. Emits one [cell-swept] line per ResolveWithTransition call —
sp.CurCellId and sp.CheckCellId (the transition's swept cells) alongside the
incoming cellId so a doorway capture shows whether the swept cell is stable
where ResolveCellId strobes. No ResolveCellId call in the probe — avoids the
CellGraph.CurrCell side effect. No behavior change.

TDD: ProbeSweptEnabled_DefaultsToFalse RED→GREEN in PhysicsDiagnosticsTests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erik 2026-06-02 14:08:00 +02:00
parent 50b168bc1e
commit 851cecc757
3 changed files with 35 additions and 0 deletions

View file

@ -408,6 +408,21 @@ public static class PhysicsDiagnostics
public static bool ProbePlacementFailEnabled { get; set; } =
Environment.GetEnvironmentVariable("ACDREAM_PROBE_PLACEMENT_FAIL") == "1";
/// <summary>
/// Phase W Stage 0 (2026-06-02): one <c>[cell-swept]</c> line per
/// <see cref="PhysicsEngine.ResolveWithTransition"/> call — the
/// transition's swept cell (<c>sp.CurCellId</c>/<c>sp.CheckCellId</c>)
/// vs the position-derived cell the legacy static
/// <see cref="PhysicsEngine.ResolveCellId"/> path used. Proves the swept
/// cell is stable where the static one strobes at the doorway boundary.
///
/// <para>
/// Initial state from <c>ACDREAM_PROBE_SWEPT=1</c>. Zero cost when off.
/// </para>
/// </summary>
public static bool ProbeSweptEnabled { get; set; } =
Environment.GetEnvironmentVariable("ACDREAM_PROBE_SWEPT") == "1";
/// <summary>
/// A6.P3 issue #98 step-walk investigation (2026-05-23). When true,
/// emits one <c>[step-walk]</c> line at selected points in the transition