Files
foxhunt/crates
jgrusewski 93471d85a2 diag+test(policy-quality): Task 0.9 + 0.13 — controller fire-rate tracking
Adds delta-based adaptive-controller fire detection. A controller 'fired'
in epoch N iff its observable output changed from epoch N-1 beyond a small
numerical threshold. Applied to all 6 controllers per spec §5.3:
  - anti_lr          (threshold 1e-10 on LR)
  - tau              (1e-6 on target-net tau)
  - gamma            (1e-4 on discount factor)
  - grad_clip        (1e-3 on adaptive clip threshold)
  - cql_alpha        (1e-5 on CQL pessimism weight)
  - cost_anneal      (1e-4 on tx-cost anneal factor)

Adds:
  * DQNTrainer.prev_controller_values + .controller_fire_counts
  * ControllerPrevValues (NaN sentinel on first epoch = no fire)
  * ControllerFireCounts (running u32 per controller)
  * pub fn controller_fire_rates_final() -> [f32; 6]
  * HEALTH_DIAG 'controller' group shows per-epoch fire bools + max
    running fire rate across all controllers (fire_frac)

Adds smoke test controller_activity.rs asserting no controller fires in
> 50% of epochs. Expected to FAIL on current main — anti-LR fires every
epoch per today's session observation. Documents the load-bearing issue.

Completes Tasks 0.9 + 0.13 per plan. No partial state — all 6 controllers
are delta-tracked, all fire rates exposed, the smoke test asserts against
all of them.
2026-04-21 21:34:36 +02:00
..