diff --git a/workspace-server/cmd/server/main.go b/workspace-server/cmd/server/main.go index e8918db2f..04dff6d57 100644 --- a/workspace-server/cmd/server/main.go +++ b/workspace-server/cmd/server/main.go @@ -149,8 +149,13 @@ func main() { result, err := db.DB.ExecContext(ctx, `DELETE FROM activity_logs WHERE created_at < now() - ($1 || ' days')::interval`, retentionDays) if err != nil { log.Printf("Activity log cleanup error: %v", err) - } else if n, _ := result.RowsAffected(); n > 0 { - log.Printf("Activity log cleanup: purged %d old entries", n) + } else { + n, err := result.RowsAffected() + if err != nil { + log.Printf("Activity log cleanup RowsAffected error: %v", err) + } else if n > 0 { + log.Printf("Activity log cleanup: purged %d old entries", n) + } } } } diff --git a/workspace-server/internal/channels/manager.go b/workspace-server/internal/channels/manager.go index 5a30f09ce..b64336a5e 100644 --- a/workspace-server/internal/channels/manager.go +++ b/workspace-server/internal/channels/manager.go @@ -82,7 +82,10 @@ func NewManager(proxy A2AProxy, broadcaster Broadcaster) *Manager { log.Printf("Channels: failed to disable telegram chat_id=%s: %v", chatID, err) return } - if rows, _ := res.RowsAffected(); rows > 0 { + rows, err := res.RowsAffected() + if err != nil { + log.Printf("Channels: disable telegram RowsAffected error chat_id=%s: %v", chatID, err) + } else if rows > 0 { log.Printf("Channels: disabled %d telegram channel(s) for chat_id=%s (bot removed)", rows, chatID) // Reload so the in-memory poller map drops the now-disabled row. m.Reload(ctx) diff --git a/workspace-server/internal/handlers/webhooks.go b/workspace-server/internal/handlers/webhooks.go index 9747c83b4..8a7bf17a5 100644 --- a/workspace-server/internal/handlers/webhooks.go +++ b/workspace-server/internal/handlers/webhooks.go @@ -394,9 +394,13 @@ func (h *WebhookHandler) handleCronTriggerEvent(c *gin.Context, eventType string log.Printf("Webhook: cron trigger (issues/opened) DB error: %v", err) return true, fmt.Errorf("failed to trigger schedules: %w", err) } - affected, _ := result.RowsAffected() - log.Printf("Webhook: issues/opened in %s #%d by %s — triggered %d pick-up-work schedule(s)", - payload.Repository.FullName, payload.Issue.Number, payload.Sender.Login, affected) + affected, err := result.RowsAffected() + if err != nil { + log.Printf("Webhook: issues/opened RowsAffected error: %v", err) + } else { + log.Printf("Webhook: issues/opened in %s #%d by %s — triggered %d pick-up-work schedule(s)", + payload.Repository.FullName, payload.Issue.Number, payload.Sender.Login, affected) + } c.JSON(http.StatusOK, gin.H{ "status": "triggered", @@ -429,9 +433,13 @@ func (h *WebhookHandler) handleCronTriggerEvent(c *gin.Context, eventType string log.Printf("Webhook: cron trigger (pull_request_review/submitted) DB error: %v", err) return true, fmt.Errorf("failed to trigger schedules: %w", err) } - affected, _ := result.RowsAffected() - log.Printf("Webhook: pull_request_review/submitted in %s PR #%d by %s (state=%s) — triggered %d review schedule(s)", - payload.Repository.FullName, payload.PullRequest.Number, payload.Sender.Login, payload.Review.State, affected) + affected, err := result.RowsAffected() + if err != nil { + log.Printf("Webhook: pull_request_review/submitted RowsAffected error: %v", err) + } else { + log.Printf("Webhook: pull_request_review/submitted in %s PR #%d by %s (state=%s) — triggered %d review schedule(s)", + payload.Repository.FullName, payload.PullRequest.Number, payload.Sender.Login, payload.Review.State, affected) + } c.JSON(http.StatusOK, gin.H{ "status": "triggered",