Web Chat Ask Streaming Path

Web Chat Ask Streaming Path A sequence diagram generated by Archify. ask(notebook, question) assert_bound_loop before anything else resolve source ids source ids _stream_answer(...) conversation lock held; prior-role and cache read chat_aware_authed_post next_reqid() plus the chat request body streaming POST streamed chunks HTTP response body WebChatAPI parses the streamed body into answer, references and document metadata _PostedAsk ChatAPI then resolves the authoritative conversation id AskResult Prepare Stream Settle Caller · client.chat.ask · backend=web · Sequence participant Caller client.chat.ask · backend=web ChatAPI · neutral base · Sequence participant ChatAPI neutral base NotebooksAPI · source ids · Sequence participant NotebooksAPI source ids WebChatAPI · _stream_answer · Sequence participant WebChatAPI _stream_answer RuntimeTransport · authed POST · Sequence participant RuntimeTransport authed POST NotebookLM API · streaming · Sequence participant NotebookLM API streaming Legend request return default message

Owned by the neutral base

  • • Conversation, lock, cache, id recovery and turn numbers live on ChatAPI
  • • Only one send/decode seam is backend-specific

Why it is special

  • • Streaming chat has a custom request body and chat-flavored error mapping
  • • AndroidChatAPI implements the same neutral base over gRPC instead

Tenancy caution

  • • The chat cache keys on conversation_id with no account dimension
  • • Reusing one client across tenants risks mixing local chat history