{"implementation":"REPLACEMENT loop code/diag.py (run_19badd842c code/rx.py not recoverable: no attachments on session b673afe8; not in evidence manifest)", "loss":"code/losses_patched.py = run_19badd842c losses.py (sha256 36e74485...) + docs/dppo-zero-mask/losses-instrumentation.patch from modal-projects/research-exchange@c469bca5b89f1142da1cdf6e1a64d5adbe4874ce (instrumentation only; token_terms unchanged)", "baseline_reference":"modal-projects/spindle@e58ebef130b4cd02de6880e62d27ec358ff7132c src/spindle/backends/megatron_runtime/common/forward_backward.py (sha256 a71be713...)", "treatment_reference":"sail-sg/Stable-RL@c6af1d119c0fe30d16dd9a837d35fdf695acd226 verl/trainer/ppo/core_algos.py (sha256 4f3738ab...), verl/utils/torch_functional.py (sha256 8ac62195...)", "audit":"scripts/audit_dppo_evidence.py @c469bca rerun locally on original and patched losses: fixture GRPO loss/grad exact, DPPO grad+mask exact (loss diff 3.05e-5), forced cases pass", "sdk":{"tinker":"0.37.0","tinker-cookbook":"installed via uv (math-rl extras)","torch":"2.15.0"},"no_fork":true}