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: протокол внешней приёмки 12.5
Актуальное продолжение 2026-10-11: завершён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 открыт.
Актуальное продолжение 2026-10-11: завершён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 открыт.
IPsec78: реальный PSK responder established, mode-config198.18.78.10 и online=true подтверждены API; точные собственные объекты удалены. Сертификатный/DN online, late failure и history restore остаются открытыми. [Отчёт](ux-ui/acceptance/ipsec-mode-config-2026-10-09.json), [журнал](ux-ui-progress.md).
@@ -696,7 +696,7 @@ flowchart LR
## 12.5.77 — основной блок IPsec (2026-10-09)
Актуальное продолжение 2026-10-11: завершён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 открыт.
Актуальное продолжение 2026-10-11: завершён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 открыт.
Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md).
@@ -1413,3 +1413,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 → реальные строки |