fix(api): завершать запрос при обрыве ответа RouterOS
This commit is contained in:
1 parent
5944e5e751
commit
7f0c2aad0f
13 files changed
+1005
-31
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# UX/UI: протокол внешней приёмки 12.5
|
||||
|
||||
Актуальное продолжение 2026-10-10: завершены12.5.93–98. На стенде backend ux-speed98/frontend ux-ospf91; неизвестный native результат при transport loss теперь явно объяснён одинаково в API/history/UI, live2/2. Собственные fixtures очищены, credentials не менялись. Следующий12.5.99 — общая backend/main/context регрессия; backend/main уже запущены и пока не объявлены прошедшими. Актуальная внешняя матрица docs/ux-ui-remaining-acceptance.md; этап12.5 открыт.
|
||||
Актуальное продолжение 2026-10-10: завершены12.5.93–98 и100;99 general main UI regression в работе. Backend ux-response100/frontend ux-ospf91: partial RouterOS response теперь prompt ECONNRESET/unknown receipt,7/7 transport и общая backend регрессия24 groups/171 node cases passed, live2/2/cleanup. 30-route live обзор нашёл нарушения контраста/keyboard;101 исправить после main99, затем context. Актуальная матрица docs/ux-ui-remaining-acceptance.md; этап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).
|
||||
|
||||
@@ -138,10 +138,6 @@ BGP-prefix evaluator, отдельное live GRE расписание и recove
|
||||
|
||||
12.5.21: отдельная строка unknown/runId, сохранение snapshot и сверка по идентификатору при чтении истории. 13 браузерных тестов с HTTP-моками/typecheck/ESLint прошли; это не приёмка real browser/PG. Основной backend4c12c55/frontend673e5ba прежний. Следующий 12.5.22 — сборка и проверка обновлённых образов. Полный 12.5 открыт.
|
||||
|
||||
## Локальный unknown UX — 2026-10-08
|
||||
|
||||
12.5.21: отдельная строка unknown/runId, сохранение snapshot и сверка по идентификатору при чтении истории. 13 браузерных тестов с HTTP-моками/typecheck/ESLint прошли; это не приёмка real browser/PG. Основной backend4c12c55/frontend673e5ba прежний. Следующий 12.5.22 — сборка и проверка обновлённых образов. Полный 12.5 открыт.
|
||||
|
||||
## Real browser unknown и deployment — 2026-10-08
|
||||
|
||||
12.5.22: [real browser speed unknown](ux-ui/acceptance/browser-speed-unknown-2026-10-08.json) подтвердил snapshot42, видимый unknown/runId, reconciliation к SQL history done, снятие предупреждения, native1/POST1/JS0/320fits. HTTP/RouterOS-моков нет; COMMIT acknowledgement fault введён на node-pg boundary, физический network disconnect не проверен. [Оба образа8782054 развёрнуты](ux-ui/acceptance/deployed-8782054-2026-10-08.json), [пять экранов](ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json) прошли. Основная БД не восстанавливалась, контроль сохранён. Следующий12.5.23 — ROS-8/9: preflight/late-context changes на реальном PG/native. Полный12.5 открыт.
|
||||
@@ -935,3 +931,21 @@ API502, history error/TXRX/Pingnull, probe error с прежними42/17/15/0;
|
||||
[Native/API/PG](ux-ui/acceptance/speed-message-2026-10-10.json) и [browser](ux-ui/acceptance/browser-speed-message-2026-10-10.json): повторён только изменённый receipt path, одна capped10Mbit/s TCP3s команда, реальное закрытие socket после передачи, native independently done, API/history содержат новое сообщение; прежние синтетические42/17/15/0 сохранены, native1/noauto retry. Live1280/3202/2, сообщение видно в probe card, reload/document fits/pageerror0/UI command POST0. Свои disabled probe/history удалены, исходные IDs совпали, только3 compose containers/backend/PG healthy; RouterOS/credentials не менялись.
|
||||
|
||||
При согласовании указателей94–97 обнаружено, что массовая замена также затронула исторический абзац77 в плане/протоколе. Восстановлен точный абзац из40f730b, история/дата2026-10-09 сохранены; следующие обновления ограничены текущими указателями. Следующий99 — одна общая backend/main/context регрессия на текущем source, с восстановлением исходных доказательств, затем итоговая сводка. General backend/main runs уже запущены, их результат этим блоком не заявлен. Квота23% использовано; этап12.5 открыт. Один локальный commit без push.
|
||||
|
||||
## 12.5.99 — общая регрессия и live обзор (2026-10-10)
|
||||
|
||||
**В работе.** Backend98 npm test24 groups/164 node:test cases/exit0 прошёл с недоступным fixture DB URL; это не real-PG приёмка. Main UI regression запущена на3100 с BACKEND_INTERNAL_URL=http://127.0.0.1:1, API responses контролируются test fixtures. JSON reporter выдаёт итог после завершения; main/context пока не объявлены прошедшими. UI production source не меняется во время main run.493 исходных evidence files защищены snapshot, включая чужие изменённые GRE/VXLAN screenshots; восстановление — после main/context.
|
||||
|
||||
[Live обзор](ux-ui/acceptance/live-shell-a11y-2026-10-10.json):30 routes×1280/320=60, HTTP200/route errors0/pageerror0/document overflow0. Два автоматических read-only OSPF preview POST, apply/mutations0. Default dark theme/scoped axe выявил10 нарушений: alerts empty text, certificate badge/pre keyboard, containers hint, uptime hint; filters320 contrast не воспроизвёлся в устойчивом900ms повторе. Дополнительная светлая тема выявила sidebar subtitles и HR badge. Полная WCAG/все интеграции этим обзором не приняты; исправление101 после завершения main run.
|
||||
|
||||
Согласованность журналов: у всех numbered records есть даты, найден и удалён один точный дубликат12.5.21 изprogress/stage12/external; первая запись и дата2026-10-08 сохранены. Другие исторические данные не удалялись. В процессе внешнего HTTP контроля выявлен общий partial-response hang; исправление и отдельная фиксация100 ниже. Следующий шаг99 — дождаться main result, затем context; не перезапускать уже успешные unchanged suites.
|
||||
|
||||
## 12.5.100 — RouterOS: обрыв тела HTTP ответа больше не зависает (2026-10-10)
|
||||
|
||||
У ClientRequest и IncomingMessage разные error events. После получения headers частичный ответ не вызывал request error/end; запрос оставался pending даже после500ms timeout. Изолированная проверка воспроизвела6 failures по deadline1200ms для GET/POST/PUT/PATCH/DELETE/raw file reading; полныйsuccess/401 проходил. Добавлен общий watchRosResponseFailure на aborted/error во всех6 paths, очистка timer и существующий settle/AbortSignal cleanup дляPOST. Partial response отклоняется как ECONNRESET, без выдуманного ACK и повторных writes. Две прежние read-only file compatibility стратегии сохранены.
|
||||
|
||||
[Протокол](ux-ui/acceptance/routeros-response-transport-2026-10-10.json): после изменения7/7 включая complete success/401, probes.cancel/actual HTTP AbortSignal и byte file parser passed. Тест включён в test:ros-file. Локальный production build, новый test ESLint и Docker build прошли. Исходные2 prefer-const errors mikrotik.ts сохраняются, новые ошибки не добавлены; whole-file lint clean не заявлен. Общая backend регрессия повторена именно из-за изменения общей основы:24 npm groups/171 node:test cases/exit0. Console assertion scripts дополнительно входят в npm suite,171 не заявляется числом всех их assertions.
|
||||
|
||||
**Live.** [Native/API/PG](ux-ui/acceptance/speed-response-body-2026-10-10.json), [browser](ux-ui/acceptance/browser-speed-response-body-2026-10-10.json). Relay сначала получил actual RouterOS done testing, затем передал headers/первые16 bytes настоящего JSON и оборвал body. Теперь API502/понятный неизвестный результат вместо pending, история/прежний synthetic snapshot42/17/15/0 согласованы. Один capped10Mbit/s TCP3s test, native1/noauto retry, PC/3202/2/new message/reload/document fits/pageerror0. Свои disabled probe/history удалены, original IDs совпали, credentials/configuration RouterOS не менялись. Это controlled HTTP socket loss после headers, не independent WAN failure/cancelled native command.
|
||||
|
||||
**Runtime.** Backend ux-response100/version1.0.0-test.response100/image797979da82d6…; одна сборка изspeed98 +client/test/package-script files, source archive SHA в отчёте. Entry/node --check/pg_restore18.6/compose --wait passed, приватный .env backup; обновлён только BACKEND_IMAGE_TAG, frontend ux-ospf91/dependencies/migrations прежние. Label response100 — имя блока, не Git SHA. Backend/PG healthy,3 compose containers. Одна локальная фиксация без push; main UI99 всё ещё выполняется на неизменённом frontend source, его итог не заявлен. Квота37% использовано. Следующий101 — подтверждённые нарушения контраста/keyboard code после main99, затем context/финальная сводка.
|
||||
Reference in new issue
Block a user