1dea65794b
Live-session bug: the chat model called record_hand but filled log_hand's granular fields (position/hole_cards/board/streets), leaving `shorthand` empty → the parser got nothing → "I couldn't parse that hand". The fragment/tool choice was correct; only the argument shape was wrong. - _record_hand now reconstructs a parseable description from the granular fields when `shorthand` is empty (_shorthand_from_fields), so it works regardless of which schema the model uses. Explicit `shorthand` still passes verbatim. - Sharpened record_hand's spec: pass the ENTIRE hand as ONE `shorthand` string, not split fields (that's log_hand); shorthand is required + non-empty. 4 tests. Full suite 210 green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>