tornado rejects fetch(request, **kwargs) when the first arg is already an HTTPRequest and the kwargs overlap request construction (auth_username / auth_password). Move auth onto the HTTPRequest. Add OpenCodeClient.close() to release its AsyncHTTPClient; module-level atexit closes the tornado singleton so 'jupyter lab' can exit cleanly after SIGINT instead of hanging on 'received signal 2, stopping'. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>