10f1c30768
host.requestProfile() had no way to express a per-call timeout, so every routed plugin RPC fell to the gateway pool's generic 30s deadline. The bot_relay.deliver contract is much longer: the backend holds the turn lock (bot_mode.turn_wait_seconds, default 120s) and then runs a 600s turn, doubled when the retry policy grants one bounded re-run, so methods_bot_relay.py documents ~1320s as the bound a client must tolerate. Long turns (Computer Use, deep research) were therefore killed at 30s and reported back as unclassified failures rather than the typed reason the backend had classified. requestGatewayForAgent()/requestGatewayForProfile() already accept timeoutMs; only the two SDK layers above them dropped it. Thread it through and pass the documented bound at the bot_relay.deliver call site. The argument is omitted entirely when unset, so every other caller stays on the pool default.