1. Temporal pipeline in training forward (submit_forward_ops_main):
- mamba2_step: temporal scan enriches h_s2 with history
- compute_predictive_coding_loss: temporal smoothness
- apply_regime_dropout: regime-conditioned dropout
- launch_isv_temporal_route: per-feature temporal weights
- risk_budget_forward: risk budget from h_s2
These were only in the monitoring path (reduce_current_q_stats),
never in the actual training forward. The model trained without
any temporal context.
2. ISV signal update after each adam step:
update_isv_signals() called after mamba2 backward, reads pinned
loss/grad_norm/Q-mean and updates the 12-element ISV vector.
Was never called during training — ISV signals stayed at zero.
3. Backtest min_hold fixed:
eval_min_hold was hardcoded 0 — no hold enforcement in validation.
Now uses config.min_hold_bars.
4. Backtest ISV signals:
Passes frozen ISV signals from last training step to validation
backtest for adaptive hold enforcement.
5. aux_frequency parameter (default 4):
IQL, IQN, attention, CQL run every 4th step instead of every step.
~4x faster epochs. graph_forward still runs every step.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>