The name of the passive, unique Registry that ConduitMcp.Application
starts (partitioned by scheduler), and its key scheme.
Every ConduitMcp.Client registers its processes here under tuple keys
of its :name, so a name may be any term and no atom is ever created:
{:supervisor, name}- theConduitMcp.Clientsupervisor.{:task_sup, name}- the client'sTask.Supervisor.{:client, name}- theConduitMcp.Client.Connection. Its value is:startinguntil the connection has initialised, then a map written once: the defaults callers need and the id of the client'sConduitMcp.Client.Cachetable, where the connection keeps the state that changes (connection state, negotiated era and version, the server's capabilities, cached lists).ConduitMcp.Client.status/1and the request functions read both without messaging the connection.{:token_store, name}- aConduitMcp.Client.OAuth.TokenStore.ETS(nameis{:client, client_name}for a client's default store,{:hub, hub_name}for a hub's shared one). Its value is the id of its:protectedtable, read directly.
A ConduitMcp.Client.Hub registers under its :name too:
{:hub, name}- the hub supervisor. Its value (%{table: tid, config: %ConduitMcp.Client.Hub.Config{}}) is written once in itsinit/1.{:hub_task_sup, name},{:hub_servers, name}(theDynamicSupervisorof server clients),{:hub_manager, name}.
Each hub server is an ordinary client named {:hub_server, hub, server_id},
so its keys are {:client, {:hub_server, hub, server_id}} and so on.
The registry holds no processes of its own. Nothing outside the client should write to it.