# LSN-0028: Converging to a Single Atomic Telemetry Source ## Context Initial implementation of the Host Debug Overlay (DEC-0007) maintained legacy fields (`telemetry_current`, `telemetry_last`) alongside the new `AtomicTelemetry` for safety and backward compatibility. This resulted in redundant code and synchronization complexity in the core VM loop. ## Problem Maintaining two sources of truth for telemetry (frame-based and atomic-based) is a form of technical debt. It requires updating both systems, increases memory footprint in the `VirtualMachineRuntime`, and creates ambiguity about which data is more "accurate" or "current." ## Lesson 1. **Atomics are sufficient:** A well-designed atomic structure with a `snapshot()` method can fulfill all needs, from real-time high-frequency inspection to deterministic frame-end certification. 2. **Push-based over Pull-based:** By having the VM "push" updates to atomic counters, the Host can consume them at its own pace without ever locking the execution thread. 3. **Purity through snapshots:** For processes that require a stable view of a frame (like Certification), capturing an atomic snapshot at the exact logical end of the frame is as precise as maintaining a separate buffered structure. ## Impact - **Simpler Code:** Removal of legacy fields reduced the complexity of `tick.rs` and `lifecycle.rs`. - **Better Performance:** Avoids redundant data copies and struct initializations per frame. - **Architectural Clarity:** All diagnostic tools (HUD, Debugger, CLI, Certifier) now converge on the same data source. ## References - DSC-0023 ([PERF] Full Migration to Atomic Telemetry) - DEC-0008 (Full Migration Decision) - PLN-0007 (Migration Plan) - DEC-0007 (Overlay Isolation)