Configuration and Operations ============================ Connection Settings ------------------- ``KumihoClient`` accepts either an existing ``ClientChannelBase`` or a host/port pair. Set ``secure: true`` to enable TLS for production deployments, or pass a custom ``ChannelOptions`` instance to tune deadlines and credentials. In local setups you can keep ``secure`` disabled to use plaintext connections. Call Options and Metadata ------------------------- Use ``callOptions`` to include the current Bearer token in every request. When you need per-call overrides—such as additional metadata or custom deadlines—use ``mergeOptions`` to combine them with the defaults without losing authentication headers. Lifecycle --------- The client owns the gRPC channel unless you supply one yourself. Call ``shutdownAsync`` to close the underlying channel and await completion when your process exits. The non-awaiting ``shutdown`` method is also available for fire-and-forget semantics in short-lived scripts or Flutter background tasks. Error Handling -------------- gRPC errors surface as ``GrpcError`` instances. Common scenarios include: * Invalid project or space names that fail server-side validation. * Permission failures when the token lacks access to a tenant or project. * Expired tokens when auto-refresh is disabled. Handle these errors at the edges of your application and retry after refreshing tokens or adjusting request parameters.