diff --git a/router/nodes.py b/router/nodes.py index 783a4ab..04e178e 100644 --- a/router/nodes.py +++ b/router/nodes.py @@ -161,7 +161,17 @@ class NodeRegistry: def get_nodes_for_user(self, user_id: str) -> list[NodeConnection]: """Get all nodes that serve a user.""" - node_ids = self._user_nodes.get(user_id, set()) + # Get nodes explicitly mapped to this user + user_node_ids = self._user_nodes.get(user_id, set()) + + # Get nodes that serve all users (empty serves_users set) + all_users_node_ids = set() + for node_id, node in self._nodes.items(): + if not node.serves_users: + all_users_node_ids.add(node_id) + + # Combine both sets + node_ids = user_node_ids | all_users_node_ids return [self._nodes[nid] for nid in node_ids if nid in self._nodes] def get_active_node(self, user_id: str) -> Optional[NodeConnection]: