Typed batchexecute RPC Call Path

Typed batchexecute RPC Call Path A sequence diagram generated by Archify. client.notebooks.list() rpc_call(method, params) logical request id and rpc_calls_started metric perform_authed_post idempotency policy, method id, request encoding chain leaf → terminal retry, auth refresh, error injection, tracing POST batchexecute streamed body raw response response decoded rows strict safe_index; shape drift raises RPCError typed result Feature layer Admission and ADR-0009 chain Decode and return Caller · CLI · MCP · REST · library · Sequence participant Caller CLI · MCP · REST · library Feature API · params + RPCMethod · Sequence participant Feature API params + RPCMethod RpcExecutor · single dispatch path · Sequence participant RpcExecutor single dispatch path RuntimeTransport · lease · auth snapshot · Sequence participant RuntimeTransport lease · auth snapshot Kernel · httpx.AsyncClient · Sequence participant Kernel httpx.AsyncClient NotebookLM API · batchexecute · Sequence participant NotebookLM API batchexecute Legend request return default message

One dispatch path

  • • Every typed RPC enters through RpcExecutor.rpc_call
  • • client.rpc_call is the raw escape hatch on the same path
  • • The Android backend replaces this path with a typed gRPC unary call

Retry safety

  • • The registry resolves retry policy once per call
  • • Probe-then-create and no-retry RPCs disable inner retries
  • • An explicit caller override always wins

Failure handling

  • • Auth-refresh middleware retries once, with a capped budget
  • • Decode wraps JSON, Key, Index and Type errors into RPCError
  • • AttributeError propagates as a code bug, not shape drift