Two-pronged fix for the race between GatewayReady auto-creating a session and ChatScreen LaunchedEffect calling switchSession: 1. ChatViewModel: added `initialSessionId` field. GatewayReady now checks this before auto-creating a session — if set, it calls switchSession instead. The field is set synchronously by ChatScreen via SideEffect during composition, before any WS event can be processed. 2. ChatScreen: LaunchedEffect now keys on state.connectionStatus and waits for CONNECTED before calling switchSession. This prevents the SESSION_RESUME message from being dropped (webSocket is null before onOpen, so send() is a silent no-op). Fixes #240 Co-authored-by: M57 <hy4ri@users.noreply.github.com>