Two-device chess polish, and a keypad new-game fix that could lose a game
A patch release finishing 0.12.0's two-device chess work, and fixing one path that could still lose
a game. Recommended for anyone running 0.12.0 on the chess persona.
Fixed: the keypad's own "new game" discarded the previous game
0.12.0 made new archive the outgoing game before starting a fresh one — but only the console
new. The keypad menu's own new-game item predated that work and reset the board directly, leaving
it as the one remaining route that could still throw away a game auto-save had been carefully
keeping. Both paths archive now.
The terminal stops talking in key codes
Entering a move on the keypad printed four tm_wait_key: raw key=N lines to the terminal — debug
scaffolding from when the key protocol was being worked out, which was harmless while the terminal
was a debugging channel and noise now that it is the session's other half.
Instead, a completed move announces itself in Standard Algebraic Notation (Board plays: Nf3),
which the terminal otherwise has no way to learn. Engine replies moved to SAN on both front ends
too, so a session speaks one notation and it is the one the PGN files use.
Keypad menu changes reach the terminal
The key presses stay silent — which keys a human is pushing is the board's business — but the state
they change does not. Setting the level from the keypad menu now prints the same line the console's
level command does, and likewise for the auto-reply toggle, save and load. Read-only menu items
(score, side to move, halfmove clock, move count) stay quiet: they are queries, and a query leaves
nothing stale.
With this, the keypad/TFT board and a terminal are fully bidirectional in both directions and for
both moves and settings — confirmed on real hardware.
Verified: 253/253 QEMU tests (RV32 NOMMU + RV64 Sv39), 24/24 hardware-in-the-loop tests against
real RP2350 silicon running these exact images.