- Feature noise injection: philox_uniform(episode, timestep, feature)
instead of advancing rng_states by 2*market_dim per timestep
- Episode start jitter: philox_uniform(episode, 0, 9999)
- Domain randomization params: philox_uniform(episode, 0, 2000+k)
- Saboteur params: philox_uniform(episode, 0, 3000+k)
All experience collection randomness is now stateless — same inputs
always produce same outputs regardless of execution history.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>