@@ -102,27 +102,40 @@ func (us *UnifiedServer) registerAllTools() error {
102102 }
103103}
104104
105- func logRegistrationIncomplete (failedServers []string , totalServers int ) {
106- if len (failedServers ) > 0 {
105+ // registrationErrors tracks backend servers that failed tool registration and
106+ // logs a summary when finish is called. Both the sequential and parallel
107+ // registration strategies use this type so failure-tracking semantics are
108+ // defined in one place.
109+ type registrationErrors struct {
110+ failed []string
111+ total int
112+ }
113+
114+ func (e * registrationErrors ) record (serverID string ) {
115+ e .failed = append (e .failed , serverID )
116+ }
117+
118+ func (e * registrationErrors ) finish () {
119+ if len (e .failed ) > 0 {
107120 logger .LogError ("backend" , "Tool registration incomplete: %d of %d backends failed: %v — agents will not see tools from these servers" ,
108- len (failedServers ), totalServers , failedServers )
121+ len (e . failed ), e . total , e . failed )
109122 }
110123}
111124
112125// registerAllToolsSequential registers tools from backend servers sequentially
113126func (us * UnifiedServer ) registerAllToolsSequential (serverIDs []string ) error {
114127 logUnified .Printf ("Registering tools sequentially from %d backends" , len (serverIDs ))
115128
116- var failedServers [] string
129+ errs := & registrationErrors { total : len ( serverIDs )}
117130 for _ , serverID := range serverIDs {
118131 logUnified .Printf ("Registering tools from backend: %s" , serverID )
119132 if err := us .registerToolsFromBackend (serverID ); err != nil {
120133 logger .LogError ("backend" , "Failed to register tools from %s: %v" , serverID , err )
121- failedServers = append ( failedServers , serverID )
134+ errs . record ( serverID )
122135 }
123136 }
124137
125- logRegistrationIncomplete ( failedServers , len ( serverIDs ) )
138+ errs . finish ( )
126139 logUnified .Printf ("Tool registration complete: total tools=%d" , len (us .tools ))
127140 return nil
128141}
@@ -158,23 +171,21 @@ func (us *UnifiedServer) registerAllToolsParallel(serverIDs []string) error {
158171
159172 // Collect and log results
160173 successCount := 0
161- failureCount := 0
162- var failedServers []string
174+ errs := & registrationErrors {total : len (serverIDs )}
163175 for result := range results {
164176 if result .err != nil {
165177 logger .LogErrorToServer (result .serverID , "backend" , "Failed to register tools from %s (took %v): %v" , result .serverID , result .duration , result .err )
166- failureCount ++
167- failedServers = append (failedServers , result .serverID )
178+ errs .record (result .serverID )
168179 } else {
169180 logUnified .Printf ("Successfully registered tools from %s (took %v)" , result .serverID , result .duration )
170181 logger .LogInfoToServer (result .serverID , "backend" , "Successfully registered tools from %s (took %v)" , result .serverID , result .duration )
171182 successCount ++
172183 }
173184 }
174185
175- logRegistrationIncomplete ( failedServers , len ( serverIDs ) )
186+ errs . finish ( )
176187
177- logger .LogInfo ("backend" , "Tool registration complete: %d succeeded, %d failed, total tools=%d" , successCount , failureCount , len (us .tools ))
188+ logger .LogInfo ("backend" , "Tool registration complete: %d succeeded, %d failed, total tools=%d" , successCount , len ( errs . failed ) , len (us .tools ))
178189 return nil
179190}
180191
0 commit comments