fix(realtime): объединение частых синхронизаций и лог неожиданных ошибок

- клиент откладывает перечитывание комнат (окно 250 мс) и не запускает второй
  запрос, пока идёт первый: серия событий ролей и участников больше не даёт
  лавину GET members/roles и 429 на лимите API;
- неожиданные ошибки API пишутся в лог (и в chi-, и в huma-ветке): под
  параллельной нагрузкой на стенде видели разовые 500 на GET members/roles,
  но без текста ошибки разобраться было нельзя.
This commit is contained in:
2026-09-22 20:58:49 +03:00
parent 63466fb75b
commit e4bbc27a7c
4 changed files with 48 additions and 4 deletions
+5
View File
@@ -149,6 +149,11 @@ func humaError(err error) huma.StatusError {
return nil
}
converted := newAPIError(err)
if converted.Status >= http.StatusInternalServerError {
// Единственное место, где видно текст неожиданной ошибки: клиенту
// уходит «internal error», поэтому пишем причину в лог (AGENT.md 9.4).
slog.Error("unexpected API error", slog.String("code", converted.Code), slog.Any("error", err))
}
return &humaAPIError{status: converted.Status, code: converted.Code, message: converted.Message}
}