docs-internal/engine/HIBERNATING_WS.md
.canHibernate = true for hibernation to work.hibernate = true via the runner protocolTo facilitate state management on the runner side (specifically via RivetKit), each hibernating websocket runs a keepalive loop which periodically stores a value to UDB marking it as active.
When a client websocket closes during hibernation, this value is cleared.
When a runner receives a CommandStartActor message via the runner protocol, it contains information about which hibernating requests are still active.