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.