Client Runtime and Web Transport

Client Runtime and Web Transport An architecture diagram generated by Archify. ClientLifecycle · _runtime/lifecycle.py · Architecture component · open · drain · close ClientLifecycle _runtime/lifecycle.py open · drain · close IdempotencyRegistry · _web/policy.py · Architecture component IdempotencyRegistry _web/policy.py CallSupervisor · drain → metrics → sem · Architecture component · generation leases CallSupervisor drain → metrics → sem generation leases WebTransportLifecycle · kernel epoch · keepalive · Architecture component WebTransportLifecycle kernel epoch · keepalive NotebookLMClient · client.py · root · Architecture component NotebookLMClient client.py · root RpcExecutor · _web/transport/executor · ADR-0009 authed POST spine · one RPC path RpcExecutor _web/transport/executor one RPC path RuntimeTransport · _web/transport/runtime · ADR-0009 authed POST spine RuntimeTransport _web/transport/runtime Middleware Chain · _web/transport/middleware · ADR-0009 authed POST spine · ADR-0009 order Middleware Chain _web/transport/middleware ADR-0009 order Kernel · httpx client · cookie jar · ADR-0009 authed POST spine Kernel httpx client · cookie jar Wire Codec · _web/wire/ · codec · Architecture component · strict safe_index Wire Codec _web/wire/ · codec strict safe_index AuthRefreshCoordinator · snapshot lock · refresh · Architecture component AuthRefreshCoordinator snapshot lock · refresh NotebookLM Web API · batchexecute endpoint · Architecture component NotebookLM Web API batchexecute endpoint open · close rpc_call retry policy encode · decode authed POST call scope auth snapshot dispatch chain leaf HTTPS POST fences epoch ADR-0009 authed POST spine Legend Backend Cloud Security

Dispatch

  • • RpcExecutor is the single logical batchexecute dispatch path
  • • RuntimeTransport takes an admission lease before loop check and auth snapshot
  • • The chain leaf re-enters RuntimeTransport.terminal for a final freshness rebuild

Policy

  • • Five retry-safety policies, closed axis: unclassified, probe-then-create, idempotent set-op, at-least-once, no-retry
  • • The caller's explicit disable_internal_retries always wins over the registry
  • • safe_index raises a typed shape-drift error; strict decoding is the only mode

Lifecycle

  • • ClientLifecycle owns resource state and open/close waves, no HTTP client
  • • WebTransportLifecycle owns the Kernel, keepalive task and cookie save routing
  • • The Android backend runs its own AndroidSession under the same CallSupervisor