Skip to content

Session 02

Session 2 (2026-02-08)

  • Legacy IDs: 2026-02-08-f .. 2026-02-08-o
  • Capture: artifacts/frida/share/gameplay_diff_capture.json
  • Capture SHA256: 251b2ef83c9ac247197fbce5f621e1a8e3e47acb7d709cb3869a7123ae651cd6
  • Baseline verifier command: uv run crimson original divergence-report artifacts/frida/share/gameplay_diff_capture.json --float-abs-tol 1e-3 --window 24 --lead-lookback 1024 --run-summary-short --run-summary-short-max-rows 30 --json-out
  • First mismatch: tick 3504 (players[0].experience, score_xp)

Key Findings

  • Primary signal moved earlier than the XP mismatch:
  • first major pre-focus RNG shortfall at tick 3453 (expected 353, rewrite 268, missing 85).
  • RNG values matched perfectly for rewrite’s prefix (prefix_match=268), with a native-only tail.
  • This indicates a missing branch sequence, not wrong RNG values in shared branches.
  • Caller-gap diagnostics isolated one missing hit-equivalent presentation loop at tick 3453 (Fire-Bullets/Gauss path).
  • Narrow float32/trig movement experiments changed geometry margins but did not move first mismatch (3504) or shortfall tick (3453).

Landed Changes

  • Added major investigation tooling:
  • original focus-trace (callsite RNG, collision near-miss, indexed sample diffs).
  • RNG value-alignment and native-only tail diagnostics.
  • caller-gap and loop-parity summaries.
  • original creature-trajectory enhancements for long-horizon slot drift.
  • Added telemetry for projectile-hit resolution (projectile_find_hit, corpse-hit markers).
  • Added shared parity helpers and precision-boundary cleanup groundwork:
  • src/crimson/math_parity.py
  • targeted updates in src/crimson/creatures/ai.py and src/crimson/creatures/runtime.py
  • corresponding tests.

Outcome / Next Probe

  • Unresolved at end of SHA family: missing hit-resolution branch(es) around projectile_update remained.
  • Next required probe: branch-order parity in projectile hit/corpse-hit handling, not broader float cleanup.