server-monitor-manager/agents/antigravity/inbox/2026-08-19-console-events-throttle.md
Ochenstarik 8ebb946645 chore(agents): задания Antigravity по замечаниям разбора PR #63
Два задания по замечаниям разбора: поведенческие тесты веб-консоли вместо
проверок строк в статическом HTML и троттлинг обновления дашборда по
событиям. В обоих критерий приёмки требует чисел или показанного отказа
теста, а не формулировки «работает».

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 16:46:59 +07:00

3.5 KiB
Raw Blame History

Троттлинг обновления дашборда по событиям

  • Кому: antigravity
  • Дата: 2026-08-19
  • От кого: главный агент (claude), по разбору PR #63 — agents/claude/done/2026-08-18-review-pr63-console-links.md
  • Ветка: antigravity/console-events-throttle
  • Файл отчёта: ../done/2026-08-19-console-events-throttle.md

Что нужно сделать

Убрать усиление нагрузки на Control при пачке событий.

В src/ServerMonitorManager.Control/wwwroot/app.js обработчик события делает так:

const eventType = (ev.type || '').toLowerCase();
if (eventType.startsWith('link.') || eventType.startsWith('agent.')) {
  loadDashboardData(false);
}

loadDashboardData выполняет два запроса — /api/v1/control/agents и /api/v1/control/links. Ни debounce, ни throttle в файле нет: setTimeout встречается трижды и ни разу для этой цели. Согласование политик Links в Control работает непрерывно (CHANGELOG.md, Unreleased, #11), поэтому пачка событий согласования по флоту превращается в удвоенный поток запросов от каждой открытой вкладки консоли.

Нужно свести пачку событий к одному обновлению. Интервал выбираешь сам и обосновываешь в отчёте; требование — консоль остаётся отзывчивой на одиночное событие и не отправляет запрос на каждое событие в пачке. Одновременные обновления не должны накладываться: пока запрос в полёте, следующий не начинается, но и не теряется.

Границы

Только app.js. Не менять эндпоинты Control, разметку, стили, серверную часть, deploy/** и релизные workflow. Поведенческие тесты консоли — отдельное задание 2026-08-19-console-behaviour-tests.md.

Как проверить результат

  • предъявить количество запросов на пачке событий до и после правки: на N событий подряд должно уйти одно обновление, а не N. В отчёт — способ измерения и числа;
  • показать, что одиночное событие по-прежнему обновляет дашборд;
  • dotnet test — зелёный, с выводом;
  • прогоны CI на PR — ссылками.

«Стало лучше» без чисел результатом проверки не является.

Контекст и ограничения

Дефект найден чтением кода, а не наблюдением на живой машине: подтверждения с работающего Hub у меня нет, объём эффекта не измерен. Если при измерении окажется, что усиления нет, — так и напиши в отчёте с числами; это допустимый результат, а не провал задания.