fix(spec-b): silent fallbacks, gradient clip defaults, CUTLASS weight padding
Spec B bug fixes:
- #7: quantile_regression.rs — 5 unwrap_or → direct indexing (OOB = bug, not silent zero)
- #15: metrics.rs — 2 unwrap_or(2) → expect (argmax must exist for non-empty Q-values)
- #4: constructor.rs — gradient_clip_norm resolved once before config construction
- #5: doc comments fixed to match canonical 0.001 entropy_coefficient default
- Bugs #1, #2, #3, #8 already fixed in prior work
CUTLASS weight padding:
- params_buf + target_params_buf: added 32*max(adv_h,value_h) padding at end
(prevents OOB reads on last weight matrix entries)
- Remaining 1684 CUTLASS reads: K-dimension tiling on state_dim=48 (not multiple
of 128 K-tile). Harmless predicated loads, would require padding replay buffer
states to fix — tracked as tech debt.
895/895 unit + 359/359 ml-dqn tests pass.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>