Added
- Experimental browser-backed RPC transport (
NOTEBOOKLM_RPC_TRANSPORT=cdp) — Routes normal batchexecute RPCs and notebook chat throughfetchinside the saved NotebookLM browser profile so Chrome supplies live browser-bound cookies. Off by default; use only whennlm doctor auth-replayshowscdp_in_pagesucceeds but normal replay fails. Seedocs/AUTHENTICATION.mdfor usage. - CDP transport support for notebook chat —
GenerateFreeFormStreamedqueries are routed through the experimental CDP transport when the flag is enabled, with longer CDP response waits to handle long answers. - Tests for CDP transport — Focused tests for transport routing, streamed query routing, long CDP timeouts, and browser lifecycle cleanup.
Fixed
- MCP
notebook_querycancellation crash — The query tool is nowasyncand dispatches blocking I/O to a thread viaanyio.to_thread.run_syncwithabandon_on_cancel=True, so MCP client cancellation no longer leaves the server in an inconsistent state.
Changed
nlm doctor auth-replayCDP probe uses the shared fetch helper — The diagnostic path now exercises the samefetch_form_in_pagehelper used by the real experimental transport, keeping the two code paths consistent.execute_cdp_commandaccepts aresponse_timeoutparameter — The default 30 s WebSocket wait is now configurable so long-running in-page fetches (e.g. streamed notebook queries) do not time out prematurely.find_existing_nlm_chromeacceptsinclude_headless— Interactive login keeps the existingFalsedefault; the browser-backed RPC transport passesTrueto reuse profile-owned headless browsers.
Notes
Use nlm doctor auth-replay first. Only try NOTEBOOKLM_RPC_TRANSPORT=cdp when normal replay fails but cdp_in_page passes. Uploads, downloads, and artifact file transfers still use the existing HTTP paths.