chore(test): проверить доступность очереди на production frontend

This commit is contained in:
Denozordec committed 2026-10-08 15:04:27 +07:00
1 parent a4ae10d7f5
commit edc459382b
8 files changed
+191 -5

No files matched your search

+10
View File
@@ -293,3 +293,13 @@ Reader получает очередь и видит disabled retry. Прямо
[Поздний receipt](ux-ui/screens/outbox-source-receipt-real-320-2026-10-08.png) просмотрен; [поздняя ошибка](ux-ui/screens/outbox-source-error-real-320-2026-10-08.png) сохранена. Навигация штатно abort-ит старый клиентский запрос; управляемая задержка producer не является физическим разрывом сети или доказательством доставки сообщения. Scheduler admission закрыт, dispatcher не запускался, внешний Telegram fetch дополнительно запрещён. AUTH_REQUIRED=false на изолированных процессах; реальные Portal login и чат не проверены.
Оба backend завершились exitCode0, cleanup подтвердил A retry2/B retry0 и sender0. Независимые SQL-запросы подтвердили ноль fixture-записей в обеих БД. Контейнеры, локальный Next3101 и туннели8018/8019 удалены. Новая БД B удалена после проверки точного имени, владельца mmapp и отсутствия соединений; PostgreSQL подтвердил отсутствие БД. Основной стенд и БД не менялись. Следующий12.5.48 — профильная доступность очереди/диалога на production frontend. Локальный коммит без push.
## 12.5.48 — доступность production очереди и диалога (2026-10-08)
[Отчёт доступности](ux-ui/acceptance/browser-outbox-a11y-2026-10-08.json): production frontendb55588f/backend8782054, отдельная PostgreSQL БД, browser HTTP-ответы не подменялись. Axe4.11.3 с WCAG2A/AA,2.1A/AA,2.2AA tags: тёмная/светлая темы ×1280/320px, по четыре области/состояния — очередь, диалог без согласия, диалог с согласием, очередь при ошибке GET. Все16 scoped audits: violations0/incomplete0, passed rules14 для очереди и16 для диалога.
Клавиатура открывает диалог через Enter, Space переключает подтверждение риска и доступность submit. По шесть Tab/Shift+Tab проверок в каждом сочетании подтверждают завершённый перенос фокуса внутри modal; Escape закрывает и возвращает фокус trigger. Асинхронные состояния имеют role=status, ошибка GET — role=alert; после восстановления ошибка исчезает. Панель/диалог помещаются в320px. [Светлая тема](ux-ui/screens/outbox-a11y-light-real-320-2026-10-08.png) и [тёмная тема](ux-ui/screens/outbox-a11y-dark-real-320-2026-10-08.png) сохранены и просмотрены.
Уточнены ожидания harness: сначала готовность доступной кнопки после основной загрузки, затем завершение CSS-анимации перед контрастным аудитом и завершение переноса фокуса через Base UI focus guards. Первый аудит поймал промежуточную прозрачность входной анимации; после её завершения контраст прошёл без изменения продукта. Это аудит устойчивых состояний, не проверка всех кадров перехода. HTTP500 создан управляемым backend overview exception; физический отказ БД не моделировался. Реальная screen reader сессия не проводилась, scoped axe/клавиатура не означают полную WCAG сертификацию приложения.
Retry POST0, Telegram calls0, JS errors0, SQL fixture counts сохранялись во всех сценариях. Dispatcher не запускался, scheduler admission закрыт. Временные контейнеры/сеть/туннель3018 удалены, backend exitCode0, отдельный SQL подтвердил ноль fixture-строк. Основной стенд и данные не менялись. Следующий12.5.49 — сводка Q-матрицы и точные оставшиеся условия реальной внешней приёмки. Локальный коммит без push.
+2 -2
View File
@@ -1,12 +1,12 @@
# План реализации UX/UI по пятичасовым окнам
Актуальное продолжение 2026-10-08: 12.5.47 подтвердил смену A→B→A во время retry на двух настоящих HTTP backend и разных PostgreSQL БД. B не получает checkpoint/результат A и не меняется; возврат A сохраняет блокировку после позднего receipt или ошибки, включая reload. JS errors0/Telegram calls0. Временные процессы, fixture и БД B удалены. Production backend8782054/frontendb55588f прежний. Следующий12.5.48 — профильная доступность очереди и диалога на production frontend; Portal/Telegram delivery открыты.
Актуальное продолжение 2026-10-08: 12.5.48 подтвердил доступность production очереди/диалога: dark/light ×1280/320,16 scoped axe WCAG аудитов без violations/incomplete; клавиатура, focus trap, checkbox, Escape/возврат фокуса и alert/status passed. Retry POST0/Telegram0/JS errors0, fixture и временный стенд очищены. Runtime backend8782054/frontendb55588f прежний. Следующий12.5.49 — сводка Q-матрицы и оставшихся условий реальной внешней приёмки.
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-08. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
## Актуальная точка продолжения — 2026-10-08
Этапы0–11 завершены в описанных локальных границах. Этап12 открыт. На тестовом сервере161.104.46.222 работают backend8782054/frontendb55588f и два CHR. Внешние проверки подтвердили PG backup/restore/rollback, остановку фоновой работы для одного экземпляра, API JWT/RBAC и браузерные состояния восстановления. Native TCP/UDP speed, история и UI проверены в границах журнала; доступ ко второму CHR восстановлен пользователем. Очередь Telegram проверена на реальном PG: dedupe, конкурентный claim, retry/version, ошибки сохранения и неопределённый исход; ответы отправителя подменялись, реальной доставки это не доказывает. Блоки12.5.43–45 подтвердили browser retry/checkpoint и развернули понятное пояснение HTTP500. 12.5.46 подтвердил browser JWT/RBAC очереди на реальном HTTP/PG; 12.5.47 подтвердил изоляцию checkpoint при смене двух реальных HTTP/PG источников в конфигурации local; следующий12.5.48 — профильная доступность production очереди/диалога. Реальная Telegram доставка, Portal SSO, физический TCP disconnect, multi-instance и остальные профильные сетевые сценарии остаются открытыми. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) содержат доказательства и ограничения.
Этапы0–11 завершены в описанных локальных границах. Этап12 открыт. На тестовом сервере161.104.46.222 работают backend8782054/frontendb55588f и два CHR. Внешние проверки подтвердили PG backup/restore/rollback, остановку фоновой работы для одного экземпляра, API JWT/RBAC и браузерные состояния восстановления. Native TCP/UDP speed, история и UI проверены в границах журнала; доступ ко второму CHR восстановлен пользователем. Очередь Telegram проверена на реальном PG: dedupe, конкурентный claim, retry/version, ошибки сохранения и неопределённый исход; ответы отправителя подменялись, реальной доставки это не доказывает. Блоки12.5.43–45 подтвердили browser retry/checkpoint и развернули понятное пояснение HTTP500. 12.5.46 подтвердил browser JWT/RBAC очереди на реальном HTTP/PG; 12.5.47 подтвердил изоляцию checkpoint при смене двух реальных HTTP/PG источников в конфигурации local; 12.5.48 подтвердил scoped axe/клавиатуру в обеих темах и320px; следующий12.5.49 — сводка Q-матрицы и открытых условий приёмки. Реальная Telegram доставка, Portal SSO, физический TCP disconnect, multi-instance и остальные профильные сетевые сценарии остаются открытыми. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) содержат доказательства и ограничения.
Выполненные внешние сценарии не заменяют приёмку оставшихся интеграций и условий эксплуатации. Датированные продолжения ниже — история; точный следующий шаг указан в начале [журнала](ux-ui-progress.md).
+12 -2
View File
@@ -1,6 +1,6 @@
# UX/UI: журнал реализации
Актуальное продолжение 2026-10-08: 12.5.47 подтвердил смену A→B→A во время retry на двух настоящих HTTP backend и разных PostgreSQL БД. B не получает checkpoint/результат A и не меняется; возврат A сохраняет блокировку после позднего receipt или ошибки, включая reload. JS errors0/Telegram calls0. Временные процессы, fixture и БД B удалены. Production backend8782054/frontendb55588f прежний. Следующий12.5.48 — профильная доступность очереди и диалога на production frontend; Portal/Telegram delivery открыты.
Актуальное продолжение 2026-10-08: 12.5.48 подтвердил доступность production очереди/диалога: dark/light ×1280/320,16 scoped axe WCAG аудитов без violations/incomplete; клавиатура, focus trap, checkbox, Escape/возврат фокуса и alert/status passed. Retry POST0/Telegram0/JS errors0, fixture и временный стенд очищены. Runtime backend8782054/frontendb55588f прежний. Следующий12.5.49 — сводка Q-матрицы и оставшихся условий реальной внешней приёмки.
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
@@ -32,7 +32,17 @@
| 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 |
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–47 и ограничения ниже. Runtime backend8782054/frontendb55588f. |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–48 и ограничения ниже. Runtime backend8782054/frontendb55588f. |
## 12.5.48 — доступность production очереди и диалога (2026-10-08)
[Отчёт доступности](ux-ui/acceptance/browser-outbox-a11y-2026-10-08.json): production frontendb55588f/backend8782054, отдельная PostgreSQL БД, browser HTTP-ответы не подменялись. Axe4.11.3 с WCAG2A/AA,2.1A/AA,2.2AA tags: тёмная/светлая темы ×1280/320px, по четыре области/состояния — очередь, диалог без согласия, диалог с согласием, очередь при ошибке GET. Все16 scoped audits: violations0/incomplete0, passed rules14 для очереди и16 для диалога.
Клавиатура открывает диалог через Enter, Space переключает подтверждение риска и доступность submit. По шесть Tab/Shift+Tab проверок в каждом сочетании подтверждают завершённый перенос фокуса внутри modal; Escape закрывает и возвращает фокус trigger. Асинхронные состояния имеют role=status, ошибка GET — role=alert; после восстановления ошибка исчезает. Панель/диалог помещаются в320px. [Светлая тема](ux-ui/screens/outbox-a11y-light-real-320-2026-10-08.png) и [тёмная тема](ux-ui/screens/outbox-a11y-dark-real-320-2026-10-08.png) сохранены и просмотрены.
Уточнены ожидания harness: сначала готовность доступной кнопки после основной загрузки, затем завершение CSS-анимации перед контрастным аудитом и завершение переноса фокуса через Base UI focus guards. Первый аудит поймал промежуточную прозрачность входной анимации; после её завершения контраст прошёл без изменения продукта. Это аудит устойчивых состояний, не проверка всех кадров перехода. HTTP500 создан управляемым backend overview exception; физический отказ БД не моделировался. Реальная screen reader сессия не проводилась, scoped axe/клавиатура не означают полную WCAG сертификацию приложения.
Retry POST0, Telegram calls0, JS errors0, SQL fixture counts сохранялись во всех сценариях. Dispatcher не запускался, scheduler admission закрыт. Временные контейнеры/сеть/туннель3018 удалены, backend exitCode0, отдельный SQL подтвердил ноль fixture-строк. Основной стенд и данные не менялись. Следующий12.5.49 — сводка Q-матрицы и точные оставшиеся условия реальной внешней приёмки. Локальный коммит без push.
## 12.5.47 — изоляция checkpoint при смене источника во время повтора (2026-10-08)
+11 -1
View File
@@ -1,6 +1,6 @@
# Этап 12: итоговая приёмка UX/UI
Актуальное продолжение 2026-10-08: 12.5.47 подтвердил смену A→B→A во время retry на двух настоящих HTTP backend и разных PostgreSQL БД. B не получает checkpoint/результат A и не меняется; возврат A сохраняет блокировку после позднего receipt или ошибки, включая reload. JS errors0/Telegram calls0. Временные процессы, fixture и БД B удалены. Production backend8782054/frontendb55588f прежний. Следующий12.5.48 — профильная доступность очереди и диалога на production frontend; Portal/Telegram delivery открыты.
Актуальное продолжение 2026-10-08: 12.5.48 подтвердил доступность production очереди/диалога: dark/light ×1280/320,16 scoped axe WCAG аудитов без violations/incomplete; клавиатура, focus trap, checkbox, Escape/возврат фокуса и alert/status passed. Retry POST0/Telegram0/JS errors0, fixture и временный стенд очищены. Runtime backend8782054/frontendb55588f прежний. Следующий12.5.49 — сводка Q-матрицы и оставшихся условий реальной внешней приёмки.
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
@@ -1458,3 +1458,13 @@ Reader получает очередь и видит disabled retry. Прямо
[Поздний receipt](ux-ui/screens/outbox-source-receipt-real-320-2026-10-08.png) просмотрен; [поздняя ошибка](ux-ui/screens/outbox-source-error-real-320-2026-10-08.png) сохранена. Навигация штатно abort-ит старый клиентский запрос; управляемая задержка producer не является физическим разрывом сети или доказательством доставки сообщения. Scheduler admission закрыт, dispatcher не запускался, внешний Telegram fetch дополнительно запрещён. AUTH_REQUIRED=false на изолированных процессах; реальные Portal login и чат не проверены.
Оба backend завершились exitCode0, cleanup подтвердил A retry2/B retry0 и sender0. Независимые SQL-запросы подтвердили ноль fixture-записей в обеих БД. Контейнеры, локальный Next3101 и туннели8018/8019 удалены. Новая БД B удалена после проверки точного имени, владельца mmapp и отсутствия соединений; PostgreSQL подтвердил отсутствие БД. Основной стенд и БД не менялись. Следующий12.5.48 — профильная доступность очереди/диалога на production frontend. Локальный коммит без push.
## 12.5.48 — доступность production очереди и диалога (2026-10-08)
[Отчёт доступности](ux-ui/acceptance/browser-outbox-a11y-2026-10-08.json): production frontendb55588f/backend8782054, отдельная PostgreSQL БД, browser HTTP-ответы не подменялись. Axe4.11.3 с WCAG2A/AA,2.1A/AA,2.2AA tags: тёмная/светлая темы ×1280/320px, по четыре области/состояния — очередь, диалог без согласия, диалог с согласием, очередь при ошибке GET. Все16 scoped audits: violations0/incomplete0, passed rules14 для очереди и16 для диалога.
Клавиатура открывает диалог через Enter, Space переключает подтверждение риска и доступность submit. По шесть Tab/Shift+Tab проверок в каждом сочетании подтверждают завершённый перенос фокуса внутри modal; Escape закрывает и возвращает фокус trigger. Асинхронные состояния имеют role=status, ошибка GET — role=alert; после восстановления ошибка исчезает. Панель/диалог помещаются в320px. [Светлая тема](ux-ui/screens/outbox-a11y-light-real-320-2026-10-08.png) и [тёмная тема](ux-ui/screens/outbox-a11y-dark-real-320-2026-10-08.png) сохранены и просмотрены.
Уточнены ожидания harness: сначала готовность доступной кнопки после основной загрузки, затем завершение CSS-анимации перед контрастным аудитом и завершение переноса фокуса через Base UI focus guards. Первый аудит поймал промежуточную прозрачность входной анимации; после её завершения контраст прошёл без изменения продукта. Это аудит устойчивых состояний, не проверка всех кадров перехода. HTTP500 создан управляемым backend overview exception; физический отказ БД не моделировался. Реальная screen reader сессия не проводилась, scoped axe/клавиатура не означают полную WCAG сертификацию приложения.
Retry POST0, Telegram calls0, JS errors0, SQL fixture counts сохранялись во всех сценариях. Dispatcher не запускался, scheduler admission закрыт. Временные контейнеры/сеть/туннель3018 удалены, backend exitCode0, отдельный SQL подтвердил ноль fixture-строк. Основной стенд и данные не менялись. Следующий12.5.49 — сводка Q-матрицы и точные оставшиеся условия реальной внешней приёмки. Локальный коммит без push.
+10
View File
@@ -301,3 +301,13 @@ Reader получает очередь и видит disabled retry. Прямо
[Поздний receipt](ux-ui/screens/outbox-source-receipt-real-320-2026-10-08.png) просмотрен; [поздняя ошибка](ux-ui/screens/outbox-source-error-real-320-2026-10-08.png) сохранена. Навигация штатно abort-ит старый клиентский запрос; управляемая задержка producer не является физическим разрывом сети или доказательством доставки сообщения. Scheduler admission закрыт, dispatcher не запускался, внешний Telegram fetch дополнительно запрещён. AUTH_REQUIRED=false на изолированных процессах; реальные Portal login и чат не проверены.
Оба backend завершились exitCode0, cleanup подтвердил A retry2/B retry0 и sender0. Независимые SQL-запросы подтвердили ноль fixture-записей в обеих БД. Контейнеры, локальный Next3101 и туннели8018/8019 удалены. Новая БД B удалена после проверки точного имени, владельца mmapp и отсутствия соединений; PostgreSQL подтвердил отсутствие БД. Основной стенд и БД не менялись. Следующий12.5.48 — профильная доступность очереди/диалога на production frontend. Локальный коммит без push.
## 12.5.48 — доступность production очереди и диалога (2026-10-08)
[Отчёт доступности](ux-ui/acceptance/browser-outbox-a11y-2026-10-08.json): production frontendb55588f/backend8782054, отдельная PostgreSQL БД, browser HTTP-ответы не подменялись. Axe4.11.3 с WCAG2A/AA,2.1A/AA,2.2AA tags: тёмная/светлая темы ×1280/320px, по четыре области/состояния — очередь, диалог без согласия, диалог с согласием, очередь при ошибке GET. Все16 scoped audits: violations0/incomplete0, passed rules14 для очереди и16 для диалога.
Клавиатура открывает диалог через Enter, Space переключает подтверждение риска и доступность submit. По шесть Tab/Shift+Tab проверок в каждом сочетании подтверждают завершённый перенос фокуса внутри modal; Escape закрывает и возвращает фокус trigger. Асинхронные состояния имеют role=status, ошибка GET — role=alert; после восстановления ошибка исчезает. Панель/диалог помещаются в320px. [Светлая тема](ux-ui/screens/outbox-a11y-light-real-320-2026-10-08.png) и [тёмная тема](ux-ui/screens/outbox-a11y-dark-real-320-2026-10-08.png) сохранены и просмотрены.
Уточнены ожидания harness: сначала готовность доступной кнопки после основной загрузки, затем завершение CSS-анимации перед контрастным аудитом и завершение переноса фокуса через Base UI focus guards. Первый аудит поймал промежуточную прозрачность входной анимации; после её завершения контраст прошёл без изменения продукта. Это аудит устойчивых состояний, не проверка всех кадров перехода. HTTP500 создан управляемым backend overview exception; физический отказ БД не моделировался. Реальная screen reader сессия не проводилась, scoped axe/клавиатура не означают полную WCAG сертификацию приложения.
Retry POST0, Telegram calls0, JS errors0, SQL fixture counts сохранялись во всех сценариях. Dispatcher не запускался, scheduler admission закрыт. Временные контейнеры/сеть/туннель3018 удалены, backend exitCode0, отдельный SQL подтвердил ноль fixture-строк. Основной стенд и данные не менялись. Следующий12.5.49 — сводка Q-матрицы и точные оставшиеся условия реальной внешней приёмки. Локальный коммит без push.
@@ -0,0 +1,146 @@
{
"date": "2026-10-08",
"frontendSource": "b55588f",
"backendSource": "8782054",
"axeVersion": "4.11.3",
"browserHttpMocks": false,
"cases": [
{
"theme": "dark",
"width": 1280,
"panelAudit": {
"violations": [],
"incomplete": [],
"passedRules": 14
},
"dialogAudit": {
"violations": [],
"incomplete": [],
"passedRules": 16
},
"acknowledgedAudit": {
"violations": [],
"incomplete": [],
"passedRules": 16
},
"errorAudit": {
"violations": [],
"incomplete": [],
"passedRules": 14
},
"focusTrapSteps": 6,
"keyboardOpenAndCheckbox": true,
"escapeRestoresFocus": true,
"errorUsesAlert": true,
"statusUsesStatus": true,
"mobileFits": true,
"retryPosts": 0,
"externalSenderCalls": 0,
"pageErrors": []
},
{
"theme": "dark",
"width": 320,
"panelAudit": {
"violations": [],
"incomplete": [],
"passedRules": 14
},
"dialogAudit": {
"violations": [],
"incomplete": [],
"passedRules": 16
},
"acknowledgedAudit": {
"violations": [],
"incomplete": [],
"passedRules": 16
},
"errorAudit": {
"violations": [],
"incomplete": [],
"passedRules": 14
},
"focusTrapSteps": 6,
"keyboardOpenAndCheckbox": true,
"escapeRestoresFocus": true,
"errorUsesAlert": true,
"statusUsesStatus": true,
"mobileFits": true,
"retryPosts": 0,
"externalSenderCalls": 0,
"pageErrors": []
},
{
"theme": "light",
"width": 1280,
"panelAudit": {
"violations": [],
"incomplete": [],
"passedRules": 14
},
"dialogAudit": {
"violations": [],
"incomplete": [],
"passedRules": 16
},
"acknowledgedAudit": {
"violations": [],
"incomplete": [],
"passedRules": 16
},
"errorAudit": {
"violations": [],
"incomplete": [],
"passedRules": 14
},
"focusTrapSteps": 6,
"keyboardOpenAndCheckbox": true,
"escapeRestoresFocus": true,
"errorUsesAlert": true,
"statusUsesStatus": true,
"mobileFits": true,
"retryPosts": 0,
"externalSenderCalls": 0,
"pageErrors": []
},
{
"theme": "light",
"width": 320,
"panelAudit": {
"violations": [],
"incomplete": [],
"passedRules": 14
},
"dialogAudit": {
"violations": [],
"incomplete": [],
"passedRules": 16
},
"acknowledgedAudit": {
"violations": [],
"incomplete": [],
"passedRules": 16
},
"errorAudit": {
"violations": [],
"incomplete": [],
"passedRules": 14
},
"focusTrapSteps": 6,
"keyboardOpenAndCheckbox": true,
"escapeRestoresFocus": true,
"errorUsesAlert": true,
"statusUsesStatus": true,
"mobileFits": true,
"retryPosts": 0,
"externalSenderCalls": 0,
"pageErrors": []
}
],
"limits": [
"Scoped axe audits of queue and alertdialog; not a full WCAG conformance certification",
"Synthetic PostgreSQL states; controlled backend GET error, no actual database outage",
"Auth false; no screen reader session, actual Telegram delivery or Portal login tested"
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB