docs-internal/engine/rivetkit-core-websocket.md
Promise from ws.addEventListener("close", async handler) or ws.onclose = async handler.WebSocketCallbackRegion; the TypeScript native adapter opens one additional region per promise-returning user handler and closes that exact region when the promise settles.onDisconnect gating. Close handlers are WebSocket event work; onDisconnect is connection lifecycle work.rivetkit-core websocket and sleep tests.rivetkit-typescript/packages/rivetkit/tests/driver/actor-sleep.test.ts and actor-sleep-db.test.ts.