probe(physics): ACDREAM_DUMP_TRANSIT_FAIL — self-selecting transition-phase trace for #345
Some checks are pending
Headless portability / portable-headless (ubuntu-latest) (push) Waiting to run
Headless portability / portable-headless (windows-latest) (push) Waiting to run
Headless portability / linux-graphical (push) Waiting to run
Headless portability / linux-vulkan (push) Waiting to run
Some checks are pending
Headless portability / portable-headless (ubuntu-latest) (push) Waiting to run
Headless portability / portable-headless (windows-latest) (push) Waiting to run
Headless portability / linux-graphical (push) Waiting to run
Headless portability / linux-vulkan (push) Waiting to run
Fires only on the stuck-tick predicate (>=1mm XY requested, <=0.1mm achieved), buffering per-tick phase outcomes cheaply and flushing only on a stuck tick: per-insert-attempt phase/state/normal/source, step-up enter/exit verdicts, every ValidateWalkable branch with dist/waterDepth and both SetCollisionNormal guards evaluated, and the tick's final AdjustOffset pair. Zero cost when off (flag before any allocation — the I1 zero-alloc gate stays green), mover id on every line, [ThreadStatic] buffer per the referee-safety rule. Two tests: fires on a synthetic wall-stuck tick, silent on ordinary movement. Diagnostics only; no behavioral change. Suite 11,271 / 6 / 0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
6c6664a685
commit
e761761aa3
4 changed files with 622 additions and 3 deletions
|
|
@ -1922,6 +1922,12 @@ public sealed class PhysicsEngine
|
|||
// sentinel value for that case. No-op when the probe is off.
|
||||
PhysicsDiagnostics.BeginContactPlaneAttribution();
|
||||
|
||||
// #345 probe (2026-08-08): reset the per-tick transition-phase trace
|
||||
// buffer. Scoped to exactly one resolve/tick — see
|
||||
// PhysicsDiagnostics.BeginTransitFailTrace. No-op when the probe is
|
||||
// off.
|
||||
PhysicsDiagnostics.BeginTransitFailTrace();
|
||||
|
||||
var transition = RentTransition();
|
||||
try
|
||||
{
|
||||
|
|
@ -2470,6 +2476,13 @@ public sealed class PhysicsEngine
|
|||
Orientation: sp.CurOrientation); // Render Residual A — the sweep failed (find_valid_position == 0)
|
||||
}
|
||||
|
||||
// #345 probe (2026-08-08): the self-selecting stuck-tick
|
||||
// predicate — fires only when this tick requested a real XY
|
||||
// move and delivered none, flushing the buffered
|
||||
// transition-phase trace. No-op when the probe is off.
|
||||
PhysicsDiagnostics.EmitTransitFailIfStuck(
|
||||
movingEntityId, currentPos, targetPos, resolveResult.Position);
|
||||
|
||||
// A6.P3 #98 capture: emit one JSON Lines record per player call,
|
||||
// with bodyBefore snapshot (taken at method entry, before any
|
||||
// engine mutation) + bodyAfter snapshot (taken now, after the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue