f1f601c28b
Replaces synchronous disk writes on the UI thread with a dedicated persistence actor task. The UI now try_sends a PersistRequest and returns immediately — keyboard input is never gated on write completion. Changes: - New persistence_actor module with bounded-coalescing actor - Actor spawns at TUI startup; global singleton so no App struct change - All persist_checkpoint/persist_session_snapshot/clear_checkpoint calls replaced with persistence_actor::persist(PersistRequest::...) - Dropped redundant TurnStarted persist (nothing changed between SendMessage's checkpoint and TurnStarted) - Fixed collapsible_if clippy lint This is the P0 fix for the post-send terminal freeze caused by serialising 500KB+ sessions to disk on the UI thread.