diff --git a/docs/superpowers/plans/2026-04-24-dqn-v2-plan-3-behavioural.md b/docs/superpowers/plans/2026-04-24-dqn-v2-plan-3-behavioural.md index 762017ed3..9b8841248 100644 --- a/docs/superpowers/plans/2026-04-24-dqn-v2-plan-3-behavioural.md +++ b/docs/superpowers/plans/2026-04-24-dqn-v2-plan-3-behavioural.md @@ -1297,10 +1297,12 @@ impl AdaptiveController for CqlAlphaSeedCoupledController { type Signal = f32; // current seed fraction in replay buffer type Control = f32; // cql_alpha - fn read_signals(&self, _isv: &IsvBus) -> Self::Signal { - // Producer: replay buffer tracks seed-origin vs. dqn-origin count. - // That's exposed via an existing counter; controller reads it. - unimplemented!("plumbed by caller") + fn read_signals(&self, isv: &IsvBus) -> Self::Signal { + // Producer: replay buffer tracks seed-origin vs. dqn-origin count + // and writes the current seed fraction into ISV slot + // SEED_FRACTION_EMA_INDEX (a Plan 1 reserved controller-signal slot). + // Here we just read it back. + isv.read(SEED_FRACTION_EMA_INDEX) } fn update(&mut self, seed_fraction: f32) -> f32 {