fix(wireguard): учитывать неподтверждённую ревизию импорта
This commit is contained in:
1 parent
91ee424b42
commit
8eaf78b686
10 files changed
+84
-11
No files matched your search
@@ -611,3 +611,13 @@ Supplemental native service run на каждом CHR использовал н
|
||||
[Native service/API evidence](ux-ui/acceptance/wg-import-compensation-native-2026-10-09.json), [production browser failure/retry](ux-ui/acceptance/browser-wg-import-compensation-e01454b-2026-10-09.json), [deploy/DB controls](ux-ui/acceptance/wg-import-compensation-deploy-controls-2026-10-09.json), [smoke6 страниц](ux-ui/acceptance/deploy-browser-e01454b-backend-2026-10-09.json). Финальный fixture exit0, собственные WG/peers/IP/connected routes удалены; выбранные WG/peers/IP/routes/IPv4 filter/nat/mangle совпали с baseline на обоих CHR. Остались3 основные службы, backend healthy. DB controls до/после servers2,speedHistory9,retentionDays14,migrations9; audit revisions намеренно сохранены. Smoke /dashboard,/servers,/uptime?tab=speed,/settings,/filters,/wireguard →200,320px fits,0 page/API errors. Ключи/конфигурации не включались в отчёты/скриншоты/traces/файлы; public JSON проверены. Product source после71 не менялся, общая локальная регрессия не повторялась; выполнены production build и реальные scoped сценарии.
|
||||
|
||||
Граница результата: подтверждённый native validation failure после трёх создающих операций, компенсация и ручной успешный retry в production HTTP/UI. Потерянный ответ/HTTP408/500 после commit,потеря процесса,unconfirmed cleanup,concurrent changes и audit DB failure остаются внешними ограничениями; unit71 их не заменяет. Следующий12.5.73 — изолированный audit failure после настоящего apply и truthful состояние applied с собственной WG парой/cleanup. RBAC/IPv6/throughput/multi-instance/PSK/multi-address/unknown-conf поля и остальные протоколы/интеграции остаются открытыми. Доступы и чужая RouterOS конфигурация не менялись. Локальный коммит без push.
|
||||
|
||||
## 12.5.73 — отсутствие audit receipt не означает полный успех импорта (2026-10-09)
|
||||
|
||||
При подготовке внешнего fault scenario найдено: captureAndAppendRevision перехватывает capture/persistence errors и возвращает null, а recordWireguard раньше игнорировал return value. Поэтому catch из71 не срабатывал при обычном сбое сохранения и route мог вернуть200. Внешний тест перенесён до исправления обнаруженной причины; реальный DB fault в73 не заявлен принятым.
|
||||
|
||||
recordWireguard теперь возвращает результат helper. Новый confirmWireguardImportRevision проверяет null/undefined и exception; созданная или уже существующая неизменённая ревизия считается подтверждением. Импорт после успешного native apply при отсутствующем receipt возвращает502,state applied: «Конфигурация применена, но сохранение ревизии не подтверждено. Обновите данные перед повтором». Формулировка не утверждает отсутствие строки БД: error может случиться после INSERT при prune/read. Подтверждённые изменения RouterOS не откатываются из-за audit error. Другие consumers recordWireguard продолжают игнорировать nullable receipt, их поведение не расширялось этим блоком.
|
||||
|
||||
Новый wireguard-import-revision.test.ts4/4: created/unchanged receipt, null/undefined, exception и настоящий captureAndAppendRevision с падающим capture callback. Последний воспроизводит именно контракт swallowing→null, DB запрос не выполняется; это не реальный отказ PostgreSQL. Новые tests включены в backend test:wireguard:42/42 (22 preflight+16 apply+4 revision), codec и Fastify4 invalid cases passed. Backend TypeScript/ESLint passed. Browser applied1/1 с подменённым502/точным новым message сохраняет textarea/server/error и не повторяет POST автоматически; это UI boundary, не native/DB интеграция. Diff check passed. Production UI/ReUI primitives не менялись.
|
||||
|
||||
Исправление локальное, runtime backend e01454b/frontend479f2ad не менялся; RouterOS объекты/пароли и DB schema в73 не менялись. Следующий12.5.74 — production build/deploy backend и изолированный реальный audit persistence failure после настоящего apply на собственных WG объектах: подтвердить applied/native/связность, предупреждение HTTP/UI, отсутствие повторной мутации и cleanup/baseline. Нельзя считать73 доказательством сбоев DB/процесса/transport/concurrency/RBAC/IPv6/интеграций; они и прочие внешние ограничения остаются открытыми. Локальный коммит без push.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# План реализации UX/UI по пятичасовым окнам
|
||||
|
||||
Актуальное продолжение 2026-10-09: 12.5.72 развернул backend e01454b, frontend479f2ad сохранён. На обоих CHR реальный отказ второго peer400 после iface/IP/peer receipts компенсирован до baseline; реальные UI502 rolled-back сохраняют форму, исправленный повтор200 восстановил handshake/Ping3/3. Cleanup/DB controls/smoke6 страниц passed. Все три сервера доступны с прежними доступами. Следующий12.5.73 — подтверждение применённой конфигурации при отказе сохранения ревизии: изолированный fault scenario и truthful HTTP/UI, собственные WG объекты и cleanup. Этап12.5 открыт.
|
||||
Актуальное продолжение 2026-10-09: 12.5.73 локально исправил ложный успех audit: captureAndAppendRevision возвращает null при ошибке, теперь импорт проверяет этот результат. Применённая конфигурация при неподтверждённой ревизии →502,state applied с точным сообщением. Unit42/42, HTTP invalid cases, browser applied1/1, backend TypeScript/ESLint passed. Runtime остаётся backend e01454b/frontend479f2ad. Следующий12.5.74 — build/deploy исправления и изолированный реальный PostgreSQL audit failure после native apply на собственной WG паре, HTTP/UI/native проверка и cleanup. Этап12.5 открыт.
|
||||
|
||||
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-08. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
|
||||
|
||||
|
||||
+12
-2
@@ -1,6 +1,6 @@
|
||||
# UX/UI: журнал реализации
|
||||
|
||||
Актуальное продолжение 2026-10-09: 12.5.72 развернул backend e01454b, frontend479f2ad сохранён. На обоих CHR реальный отказ второго peer400 после iface/IP/peer receipts компенсирован до baseline; реальные UI502 rolled-back сохраняют форму, исправленный повтор200 восстановил handshake/Ping3/3. Cleanup/DB controls/smoke6 страниц passed. Все три сервера доступны с прежними доступами. Следующий12.5.73 — подтверждение применённой конфигурации при отказе сохранения ревизии: изолированный fault scenario и truthful HTTP/UI, собственные WG объекты и cleanup. Этап12.5 открыт.
|
||||
Актуальное продолжение 2026-10-09: 12.5.73 локально исправил ложный успех audit: captureAndAppendRevision возвращает null при ошибке, теперь импорт проверяет этот результат. Применённая конфигурация при неподтверждённой ревизии →502,state applied с точным сообщением. Unit42/42, HTTP invalid cases, browser applied1/1, backend TypeScript/ESLint passed. Runtime остаётся backend e01454b/frontend479f2ad. Следующий12.5.74 — build/deploy исправления и изолированный реальный PostgreSQL audit failure после native apply на собственной WG паре, HTTP/UI/native проверка и cleanup. Этап12.5 открыт.
|
||||
|
||||
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
|
||||
|
||||
@@ -34,7 +34,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–72 и ограничения ниже. Runtime backend e01454b/frontend479f2ad. |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–73 и ограничения ниже. Runtime backend e01454b/frontend479f2ad. |
|
||||
|
||||
## 12.5.73 — отсутствие audit receipt не означает полный успех импорта (2026-10-09)
|
||||
|
||||
При подготовке внешнего fault scenario найдено: captureAndAppendRevision перехватывает capture/persistence errors и возвращает null, а recordWireguard раньше игнорировал return value. Поэтому catch из71 не срабатывал при обычном сбое сохранения и route мог вернуть200. Внешний тест перенесён до исправления обнаруженной причины; реальный DB fault в73 не заявлен принятым.
|
||||
|
||||
recordWireguard теперь возвращает результат helper. Новый confirmWireguardImportRevision проверяет null/undefined и exception; созданная или уже существующая неизменённая ревизия считается подтверждением. Импорт после успешного native apply при отсутствующем receipt возвращает502,state applied: «Конфигурация применена, но сохранение ревизии не подтверждено. Обновите данные перед повтором». Формулировка не утверждает отсутствие строки БД: error может случиться после INSERT при prune/read. Подтверждённые изменения RouterOS не откатываются из-за audit error. Другие consumers recordWireguard продолжают игнорировать nullable receipt, их поведение не расширялось этим блоком.
|
||||
|
||||
Новый wireguard-import-revision.test.ts4/4: created/unchanged receipt, null/undefined, exception и настоящий captureAndAppendRevision с падающим capture callback. Последний воспроизводит именно контракт swallowing→null, DB запрос не выполняется; это не реальный отказ PostgreSQL. Новые tests включены в backend test:wireguard:42/42 (22 preflight+16 apply+4 revision), codec и Fastify4 invalid cases passed. Backend TypeScript/ESLint passed. Browser applied1/1 с подменённым502/точным новым message сохраняет textarea/server/error и не повторяет POST автоматически; это UI boundary, не native/DB интеграция. Diff check passed. Production UI/ReUI primitives не менялись.
|
||||
|
||||
Исправление локальное, runtime backend e01454b/frontend479f2ad не менялся; RouterOS объекты/пароли и DB schema в73 не менялись. Следующий12.5.74 — production build/deploy backend и изолированный реальный audit persistence failure после настоящего apply на собственных WG объектах: подтвердить applied/native/связность, предупреждение HTTP/UI, отсутствие повторной мутации и cleanup/baseline. Нельзя считать73 доказательством сбоев DB/процесса/transport/concurrency/RBAC/IPv6/интеграций; они и прочие внешние ограничения остаются открытыми. Локальный коммит без push.
|
||||
|
||||
## 12.5.72 — реальная компенсация позднего отказа импорта WireGuard (2026-10-09)
|
||||
|
||||
|
||||
+11
-1
@@ -1,6 +1,6 @@
|
||||
# Этап 12: итоговая приёмка UX/UI
|
||||
|
||||
Актуальное продолжение 2026-10-09: 12.5.72 развернул backend e01454b, frontend479f2ad сохранён. На обоих CHR реальный отказ второго peer400 после iface/IP/peer receipts компенсирован до baseline; реальные UI502 rolled-back сохраняют форму, исправленный повтор200 восстановил handshake/Ping3/3. Cleanup/DB controls/smoke6 страниц passed. Все три сервера доступны с прежними доступами. Следующий12.5.73 — подтверждение применённой конфигурации при отказе сохранения ревизии: изолированный fault scenario и truthful HTTP/UI, собственные WG объекты и cleanup. Этап12.5 открыт.
|
||||
Актуальное продолжение 2026-10-09: 12.5.73 локально исправил ложный успех audit: captureAndAppendRevision возвращает null при ошибке, теперь импорт проверяет этот результат. Применённая конфигурация при неподтверждённой ревизии →502,state applied с точным сообщением. Unit42/42, HTTP invalid cases, browser applied1/1, backend TypeScript/ESLint passed. Runtime остаётся backend e01454b/frontend479f2ad. Следующий12.5.74 — build/deploy исправления и изолированный реальный PostgreSQL audit failure после native apply на собственной WG паре, HTTP/UI/native проверка и cleanup. Этап12.5 открыт.
|
||||
|
||||
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
|
||||
|
||||
@@ -1776,3 +1776,13 @@ Supplemental native service run на каждом CHR использовал н
|
||||
[Native service/API evidence](ux-ui/acceptance/wg-import-compensation-native-2026-10-09.json), [production browser failure/retry](ux-ui/acceptance/browser-wg-import-compensation-e01454b-2026-10-09.json), [deploy/DB controls](ux-ui/acceptance/wg-import-compensation-deploy-controls-2026-10-09.json), [smoke6 страниц](ux-ui/acceptance/deploy-browser-e01454b-backend-2026-10-09.json). Финальный fixture exit0, собственные WG/peers/IP/connected routes удалены; выбранные WG/peers/IP/routes/IPv4 filter/nat/mangle совпали с baseline на обоих CHR. Остались3 основные службы, backend healthy. DB controls до/после servers2,speedHistory9,retentionDays14,migrations9; audit revisions намеренно сохранены. Smoke /dashboard,/servers,/uptime?tab=speed,/settings,/filters,/wireguard →200,320px fits,0 page/API errors. Ключи/конфигурации не включались в отчёты/скриншоты/traces/файлы; public JSON проверены. Product source после71 не менялся, общая локальная регрессия не повторялась; выполнены production build и реальные scoped сценарии.
|
||||
|
||||
Граница результата: подтверждённый native validation failure после трёх создающих операций, компенсация и ручной успешный retry в production HTTP/UI. Потерянный ответ/HTTP408/500 после commit,потеря процесса,unconfirmed cleanup,concurrent changes и audit DB failure остаются внешними ограничениями; unit71 их не заменяет. Следующий12.5.73 — изолированный audit failure после настоящего apply и truthful состояние applied с собственной WG парой/cleanup. RBAC/IPv6/throughput/multi-instance/PSK/multi-address/unknown-conf поля и остальные протоколы/интеграции остаются открытыми. Доступы и чужая RouterOS конфигурация не менялись. Локальный коммит без push.
|
||||
|
||||
## 12.5.73 — отсутствие audit receipt не означает полный успех импорта (2026-10-09)
|
||||
|
||||
При подготовке внешнего fault scenario найдено: captureAndAppendRevision перехватывает capture/persistence errors и возвращает null, а recordWireguard раньше игнорировал return value. Поэтому catch из71 не срабатывал при обычном сбое сохранения и route мог вернуть200. Внешний тест перенесён до исправления обнаруженной причины; реальный DB fault в73 не заявлен принятым.
|
||||
|
||||
recordWireguard теперь возвращает результат helper. Новый confirmWireguardImportRevision проверяет null/undefined и exception; созданная или уже существующая неизменённая ревизия считается подтверждением. Импорт после успешного native apply при отсутствующем receipt возвращает502,state applied: «Конфигурация применена, но сохранение ревизии не подтверждено. Обновите данные перед повтором». Формулировка не утверждает отсутствие строки БД: error может случиться после INSERT при prune/read. Подтверждённые изменения RouterOS не откатываются из-за audit error. Другие consumers recordWireguard продолжают игнорировать nullable receipt, их поведение не расширялось этим блоком.
|
||||
|
||||
Новый wireguard-import-revision.test.ts4/4: created/unchanged receipt, null/undefined, exception и настоящий captureAndAppendRevision с падающим capture callback. Последний воспроизводит именно контракт swallowing→null, DB запрос не выполняется; это не реальный отказ PostgreSQL. Новые tests включены в backend test:wireguard:42/42 (22 preflight+16 apply+4 revision), codec и Fastify4 invalid cases passed. Backend TypeScript/ESLint passed. Browser applied1/1 с подменённым502/точным новым message сохраняет textarea/server/error и не повторяет POST автоматически; это UI boundary, не native/DB интеграция. Diff check passed. Production UI/ReUI primitives не менялись.
|
||||
|
||||
Исправление локальное, runtime backend e01454b/frontend479f2ad не менялся; RouterOS объекты/пароли и DB schema в73 не менялись. Следующий12.5.74 — production build/deploy backend и изолированный реальный audit persistence failure после настоящего apply на собственных WG объектах: подтвердить applied/native/связность, предупреждение HTTP/UI, отсутствие повторной мутации и cleanup/baseline. Нельзя считать73 доказательством сбоев DB/процесса/transport/concurrency/RBAC/IPv6/интеграций; они и прочие внешние ограничения остаются открытыми. Локальный коммит без push.
|
||||
@@ -619,3 +619,13 @@ Supplemental native service run на каждом CHR использовал н
|
||||
[Native service/API evidence](ux-ui/acceptance/wg-import-compensation-native-2026-10-09.json), [production browser failure/retry](ux-ui/acceptance/browser-wg-import-compensation-e01454b-2026-10-09.json), [deploy/DB controls](ux-ui/acceptance/wg-import-compensation-deploy-controls-2026-10-09.json), [smoke6 страниц](ux-ui/acceptance/deploy-browser-e01454b-backend-2026-10-09.json). Финальный fixture exit0, собственные WG/peers/IP/connected routes удалены; выбранные WG/peers/IP/routes/IPv4 filter/nat/mangle совпали с baseline на обоих CHR. Остались3 основные службы, backend healthy. DB controls до/после servers2,speedHistory9,retentionDays14,migrations9; audit revisions намеренно сохранены. Smoke /dashboard,/servers,/uptime?tab=speed,/settings,/filters,/wireguard →200,320px fits,0 page/API errors. Ключи/конфигурации не включались в отчёты/скриншоты/traces/файлы; public JSON проверены. Product source после71 не менялся, общая локальная регрессия не повторялась; выполнены production build и реальные scoped сценарии.
|
||||
|
||||
Граница результата: подтверждённый native validation failure после трёх создающих операций, компенсация и ручной успешный retry в production HTTP/UI. Потерянный ответ/HTTP408/500 после commit,потеря процесса,unconfirmed cleanup,concurrent changes и audit DB failure остаются внешними ограничениями; unit71 их не заменяет. Следующий12.5.73 — изолированный audit failure после настоящего apply и truthful состояние applied с собственной WG парой/cleanup. RBAC/IPv6/throughput/multi-instance/PSK/multi-address/unknown-conf поля и остальные протоколы/интеграции остаются открытыми. Доступы и чужая RouterOS конфигурация не менялись. Локальный коммит без push.
|
||||
|
||||
## 12.5.73 — отсутствие audit receipt не означает полный успех импорта (2026-10-09)
|
||||
|
||||
При подготовке внешнего fault scenario найдено: captureAndAppendRevision перехватывает capture/persistence errors и возвращает null, а recordWireguard раньше игнорировал return value. Поэтому catch из71 не срабатывал при обычном сбое сохранения и route мог вернуть200. Внешний тест перенесён до исправления обнаруженной причины; реальный DB fault в73 не заявлен принятым.
|
||||
|
||||
recordWireguard теперь возвращает результат helper. Новый confirmWireguardImportRevision проверяет null/undefined и exception; созданная или уже существующая неизменённая ревизия считается подтверждением. Импорт после успешного native apply при отсутствующем receipt возвращает502,state applied: «Конфигурация применена, но сохранение ревизии не подтверждено. Обновите данные перед повтором». Формулировка не утверждает отсутствие строки БД: error может случиться после INSERT при prune/read. Подтверждённые изменения RouterOS не откатываются из-за audit error. Другие consumers recordWireguard продолжают игнорировать nullable receipt, их поведение не расширялось этим блоком.
|
||||
|
||||
Новый wireguard-import-revision.test.ts4/4: created/unchanged receipt, null/undefined, exception и настоящий captureAndAppendRevision с падающим capture callback. Последний воспроизводит именно контракт swallowing→null, DB запрос не выполняется; это не реальный отказ PostgreSQL. Новые tests включены в backend test:wireguard:42/42 (22 preflight+16 apply+4 revision), codec и Fastify4 invalid cases passed. Backend TypeScript/ESLint passed. Browser applied1/1 с подменённым502/точным новым message сохраняет textarea/server/error и не повторяет POST автоматически; это UI boundary, не native/DB интеграция. Diff check passed. Production UI/ReUI primitives не менялись.
|
||||
|
||||
Исправление локальное, runtime backend e01454b/frontend479f2ad не менялся; RouterOS объекты/пароли и DB schema в73 не менялись. Следующий12.5.74 — production build/deploy backend и изолированный реальный audit persistence failure после настоящего apply на собственных WG объектах: подтвердить applied/native/связность, предупреждение HTTP/UI, отсутствие повторной мутации и cleanup/baseline. Нельзя считать73 доказательством сбоев DB/процесса/transport/concurrency/RBAC/IPv6/интеграций; они и прочие внешние ограничения остаются открытыми. Локальный коммит без push.
|
||||
Reference in new issue
Block a user