Add debug export functionality for channel analysis
ci / build-backend (push) Successful in 1m16s
ci / build-frontend (push) Successful in 42s
ci / tests (push) Successful in 1m24s
ci / sonar (push) Successful in 5m9s

Implemented a new endpoint for exporting debug data related to channel scheduling, allowing users to download an archive containing channel settings, slot states, and trace information. Updated the frontend to include a button for triggering the export, along with necessary API adjustments for handling the download. Enhanced localization strings to support the new debug export feature in both English and Russian. Updated .gitignore to include debug export files while ensuring the directory structure is maintained for development.
This commit is contained in:
Leonid Pershin
2026-07-31 02:58:17 +03:00
parent 01ba48e163
commit 9cd364b174
21 changed files with 1055 additions and 7 deletions
+13
View File
@@ -767,6 +767,19 @@ ScheduleEntry — существующая сущность,
}
```
**Отладочный дамп канала.** Трейс объясняет одну запись, но «сетка собралась не так» — вопрос
не про запись, а про весь вход планировщика сразу. Кнопка в карточке канала собирает его архивом:
настройки канала, шаблон со слотами и разобранными стратегиями, курсоры слотов, эффективная сетка
на горизонт (включая перекрытые слоты фона), развёрнутые группы **вплоть до отдельных единиц**,
стыки с условиями, записанная лента с трейсами и сухой прогон от текущего состояния. Всё, что
хранится JSON-строкой, разбирается в объекты, а рядом с каждым идентификатором стоит имя: дамп
читают глазами чаще, чем кодом.
Сухой прогон в дампе принципиален: рядом с записанной лентой он отвечает на первый вопрос
разбора — данные плохие или расчёт. Архив всегда уезжает в браузер, а копия ложится в каталог
`Debug:ExportDirectory` (в разработке — папка `debug-exports/` репозитория, в гите игнорируется);
пустая настройка означает «копию не хранить», и на сервере это состояние по умолчанию.
---
## 4. Алгоритм генерации