Broad bug hunt: auth flow, WS edge cases, and build hygiene.
Scope API auth to /api/v1, fix dashboard WebSocket 401s, session login in Calibrate, safe agent naming, reconnect races, and remove corrupt ollama/main.go.
This commit is contained in:
@@ -253,23 +253,14 @@ func (h *WSHub) HandleAgentWS(w http.ResponseWriter, r *http.Request) {
|
||||
agentID = uuid.New().String()
|
||||
}
|
||||
|
||||
displayName := auth.WorkerName
|
||||
if displayName == "" {
|
||||
displayName = auth.Worker
|
||||
}
|
||||
if displayName == "" {
|
||||
displayName = auth.Hostname
|
||||
}
|
||||
if displayName == "" {
|
||||
displayName = agentID[:8]
|
||||
}
|
||||
displayName := agentDisplayName(auth.WorkerName, auth.Worker, auth.Hostname, agentID)
|
||||
|
||||
policy := h.serverPolicySnapshot()
|
||||
if policy.MaxAgents > 0 && !h.isAgentConnected(agentID) && h.connectedAgentCount() >= policy.MaxAgents {
|
||||
conn.WriteJSON(Message{Type: "auth_response", Payload: mustMarshal(map[string]interface{}{
|
||||
"success": false, "error": "fleet agent limit reached",
|
||||
})})
|
||||
continue
|
||||
break
|
||||
}
|
||||
|
||||
forgeCfg := AgentForgeConfig{
|
||||
@@ -326,7 +317,7 @@ func (h *WSHub) HandleAgentWS(w http.ResponseWriter, r *http.Request) {
|
||||
conn.WriteJSON(Message{Type: "auth_response", Payload: mustMarshal(map[string]interface{}{
|
||||
"success": false, "error": "database error",
|
||||
})})
|
||||
continue
|
||||
break
|
||||
}
|
||||
|
||||
if policy.LogAgentConnections {
|
||||
@@ -662,6 +653,29 @@ func (h *WSHub) BroadcastAIActivity(entry interface{}) {
|
||||
h.broadcastDashboard(Message{Type: "ai_activity", Payload: mustMarshal(entry)})
|
||||
}
|
||||
|
||||
func agentDisplayName(workerName, worker, hostname, agentID string) string {
|
||||
if workerName != "" {
|
||||
return workerName
|
||||
}
|
||||
if worker != "" {
|
||||
return worker
|
||||
}
|
||||
if hostname != "" {
|
||||
return hostname
|
||||
}
|
||||
return shortAgentID(agentID)
|
||||
}
|
||||
|
||||
func shortAgentID(id string) string {
|
||||
if len(id) >= 8 {
|
||||
return id[:8]
|
||||
}
|
||||
if id == "" {
|
||||
return "agent"
|
||||
}
|
||||
return id
|
||||
}
|
||||
|
||||
// BroadcastServerLog streams a server log line to connected dashboards.
|
||||
func (h *WSHub) BroadcastServerLog(line string) {
|
||||
line = strings.TrimSpace(line)
|
||||
|
||||
Reference in New Issue
Block a user