Два задания по замечаниям разбора: поведенческие тесты веб-консоли вместо проверок строк в статическом HTML и троттлинг обновления дашборда по событиям. В обоих критерий приёмки требует чисел или показанного отказа теста, а не формулировки «работает». Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3.5 KiB
Троттлинг обновления дашборда по событиям
- Кому:
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 у меня нет, объём эффекта не измерен. Если при измерении окажется, что усиления нет, — так и напиши в отчёте с числами; это допустимый результат, а не провал задания.