`_finish_turn` gated the history update on truthiness, so a turn that legitimately returned an empty transcript left the previous history in place and the client kept rendering stale state. Same falsey-vs-absent class as the step-callback fix (#10845); gate on key presence. Refs #10844