fix(terminal): показывать последние записи журнала RouterOS

This commit is contained in:
Denozordec committed 2026-10-11 11:26:59 +07:00
1 parent 1e4d3b4678
commit bd023b8aaa
15 files changed
+321 -16

No files matched your search

+18 -2
View File
@@ -1,6 +1,6 @@
# Тестовый сервер UX/UI — 2026-10-10
Сервер161.104.46.222: завершён12.5.132 — scoped POST /log/print .query проверен на обоих CHR: собственный маркер, другой буфер и отсутствующий буфер; logging baseline восстановлен. GET buffer также работает; смешение130 вызвано чтением общего /log внутри collector. Runtime backend ux-crl127/frontend ux-ike124. Следующий133 — оставшиеся реальные сценарии и обнаруженные расхождения API; external CRL failures/клиентские ОС ещё открыты.12.5 открыт.
Сервер161.104.46.222: завершён12.5.133 — исправлен пустой вывод log print: native1000 → последние3/50/200 строк, оба CHR/API и UI1280/320 приняты. Уточнена REST-подпись терминала. Production backend/frontend ux-log133, backend/PG healthy, source/runtime hashes совпали. Следующий134 — external CRL distribution/failure и оставшаяся внешняя матрица;12.5 открыт.
| Параметр | Проверенное состояние |
| --- | --- |
@@ -14,7 +14,7 @@
| PostgreSQL | postgres:18-alpine,18.6;mmapp-test-postgres healthy;SELECT version() passed |
| Данные | Отдельный Compose project mmapp-test,том mmapp-test_mmapp-pgdata и каталог ./data |
| Доступ | PostgreSQL не публикуется;frontend3000/backend8000 привязаны к127.0.0.1 после запуска |
| Образы приложения | mmapp-test/backend:ux-crl127 и mmapp-test/frontend:ux-ike124; запущены |
| Образы приложения | mmapp-test/backend:ux-log133 и mmapp-test/frontend:ux-log133; запущены |
Compose SHA256:3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f. OptionalBACKEND_IMAGE_TAG позволяетобновлятьbackendотдельно. Локальный и удалённый файлы совпали. Шаблоны: [Compose](../deploy/docker-compose.test.yml), [env без секретов](../deploy/env.test.example).
@@ -1144,3 +1144,19 @@ GET /log?buffer=ownAction тоже изолирует корректно. Пов
Все четыре собственных logger/action на каждом CHR удалены по exact-ID/name/prefix/action/topics preflight. Полные существующие logging/action rows до/после совпали на обоих устройствах; default buffer не очищался. Пароли и VPN-конфигурация не менялись. [Протокол и точный selector](ux-ui/acceptance/routeros-scoped-log-2026-10-11.json). Документация: [REST query](https://manual.mikrotik.com/docs/developer-guides/rest-api/), [раздельные memory buffers](https://manual.mikrotik.com/docs/diagnostics-monitoring-and-troubleshooting/log/).
Source/runtime/UI не менялись; build и регрессия не повторялись. Следующий133 — оставшиеся реальные сценарии и проверка расхождений API; external CRL distribution failures, другие ОС и независимые WAN остаются открыты.12.5 не завершён.
## 12.5.133 — реальные журналы в REST-терминале (2026-10-11)
Диагностика132 выявила продуктовый баг getLogs: GET /log?limit=N использовал limit как REST property filter. На обоих CHR default memory содержал1000 строк, но SDK возвращал0, а API log print limit=3 —200/(no log entries). Исправлен SDK: чтение default memory с проекцией полей, последние N строк в native chronological order, максимум200. Невалидный limit отклоняется до опроса. Это лимит вывода: native buffer читается целиком перед slice; лимит сетевой передачи не обещается.
Проверены реальные API limits3/50/500→3/50/200 на каждом CHR, own marker виден, latest native IDs совпадают; limit0→400. Live терминал1280/320 получил по3 реальные строки, очистил поле команды после успеха и не имеет document overflow. Уточнена исходная подпись: «REST: каждая команда — отдельный запрос. Результат появится после ответа API.»; постоянная фраза о непроверенном соединении больше не противоречит успешному результату. ReUI Frame/Button/Input и base-nova сохраняются, vendor/layout не менялись.
Профильный HTTP SDK test (tail/default50/cap200/short/empty/invalid limits/401) passed, включён в npm test:exec. HTTP route/empty-versus-error и signed JWT/RBAC passed; backend build passed; source-only TypeScript и frontend production build passed. Scoped ESLint страницы/тестов passed; SDK lint имеет две исходные prefer-const ошибки125/899, проверка с отключением только этой rule passed. Обычный root tsc захватил ignored historical tmp и failed; существующий source-only config passed. Initial SDK test sandbox EACCES исправлен разрешённым loopback запуском. Первый UI assertion сравнивал newline string с отдельными div и failed; исправлен только способ проверки, final2/2 passed. Эти initial failures не скрыты и не прибавлены к уникальным сценариям.
Развёрнуты production backend/frontend ux-log133; backend/PostgreSQL healthy, frontend running/live UI. SDK source и compiled output SHA256 совпали с Docker; source страницы совпал с build context. Сохранены private rollback env и предыдущие образы. Только script/info markers добавлены в default logs; журнал не очищался, новых конфигурационных/VPN fixtures нет, оба CHR доступны, пароли не менялись. [До/после и проверки](ux-ui/acceptance/terminal-log-limit-2026-10-11.json), [live UI](ux-ui/acceptance/browser-terminal-logs-2026-10-11.json).
Следующий134 — external CRL distribution/failure и оставшаяся матрица. Полная итоговая регрессия после последнего product изменения ещё требуется;12.5 открыт.
| Референс | Схема |
| --- | --- |
| [ReUI App Shell12](https://reui.io/preview/base/app-shell-12?ref=mcp) | Устройство → log print limit=N → default memory tail → ответ API → реальные строки |