Files
foxhunt/docs
jgrusewski 82ca733255 fix(sp5): Layer A bug — add 21 reset_named_state dispatch arms
L40S smoke at SP5 Layer B HEAD (3ad5e011b) failed in 9.4s at first
fold-reset boundary with:
  ERROR: fold-reset 'sp5_atom_v_center': StateResetRegistry reset
  dispatch: unknown name 'sp5_atom_v_center'.

Every SP5 Layer A task added RegistryEntry blocks but none added the
matching dispatch arms in reset_named_state. Runtime validator catches
this on first fold boundary, crashing all 3 folds before training runs
(0/3 checkpoints saved). Local unit tests verified slot layouts but
never exercised the fold-reset dispatch path — gap masked through
Layer A close-out.

Adds 21 dispatch arms covering all SP5 Layer A FoldReset entries:
  Pearl 1:    sp5_atom_v_center / v_half / headroom / clip_rate
  shared:     sp5_branch_entropy / q_var_per_branch
  wiener:     sp5_wiener_state (no-op — sp4 arm covers full buffer)
  Pearl 3:    sp5_noisy_sigma / sigma_fraction
  Pearl 2:    sp5_budget_c51 / iqn / cql / ens / flatness
  Pearl 4:    sp5_adam_beta1 / beta2 / eps + sp5_grad_prev_buf
  Pearl 5:    sp5_iqn_tau
  Pearl 8:    sp5_trail_dist_per_dir
  Pearl 1-ext: sp5_atom_num_atoms

Pearl 6 (slots 280..286) intentionally absent — those slots are
cross-fold-persistent (the whole point of A6 per
project_magnitude_eval_collapse_kelly_capped).

Each ISV-range arm zeros its slot range to fire Pearl A's first-
observation sentinel on the new fold's first producer launch.
sp5_grad_prev_buf calls a new reset_sp5_grad_prev_buf bulk-zero
method on GpuDqnTrainer (mirrors reset_sp4_clamp_engage_counters).
sp5_wiener_state is no-op since reset_sp4_wiener_state already
bulk-zeros the full wiener_state_buf [0..543) which includes the SP5
producer block at offsets [213..543).

cargo check + cargo test --lib (sp4+sp5+state_reset_registry: 13/13
pass) both clean. Smoke re-deployment pending.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 08:54:48 +02:00
..