diff --git a/doc/group_isolation_plan.txt b/doc/group_isolation_plan.txt index ca6e4c272..d71c1a6a8 100644 --- a/doc/group_isolation_plan.txt +++ b/doc/group_isolation_plan.txt @@ -629,3 +629,27 @@ FILE_TRANSFER и прямого DM. Для реализации mailbox/custody DB_SYNC, JOIN E2E (3/3), server JOIN, MEMBERS/feedback и транспортные регрессии. - MEMBERS/bootstrap пока не изменены: их исключение не переносится на историю/настройки. Следующая граница описана в 2.4. Транзит BGP-доставки и UTUN не изменены. + +04.11.2026: транспортный этап отложенного приёма MEMBERS. + - Завершён незаконченный режим одностороннего запроса в merkle_sync. Получатель ведёт + BEGIN/READY, запрашивает различия и отправляет CHECK. Источник выдаёт DONE только + при неизменившихся данных, включая повторную проверку перед фактической отправкой. + Получатель вызывает commit_pull только после этого подтверждения; ошибка проверки + не превращается в успешный результат. Отмена, обрыв и ошибка освобождают staging. + - validate_request разрешает только локальный запрос, validate_peer — выдачу данных. + Непрошеный ответ не создаёт сессию. Получатель не отвечает своими страницами/хешами. + Обычный обмен, локальный запрос и встречная выдача имеют отдельные сессии/токены. + Завершённый запрос не начинает обратную передачу и не создаёт автоматическую подписку. + - test_merkle_protocol проверяет отказ источника, ответы без запроса, применение только + после DONE, отказ commit_pull, изменение источника до CHECK/перед отправкой DONE, + разделение направлений, запрет обратной выдачи, отзыв и отмену из callback. + Лог /tmp/member-staged-protocol.log. CHAT isolation84/84 и merkle_sync28/28 прошли; + stress прошёл 10000 вставок + 10000 обновлений с переподключениями и 1000 конкурентных + проходов треугольника: /tmp/member-staged-merkle-stress.log. + Полный ./check.sh:241/241, proxy9/9, burst/load PASS, 210с; + лог /tmp/member-staged-full-check.log. Сборка ядра и выбранных тестов без предупреждений. + - Модель MEMBERS пока НЕ подключена к новому режиму. Следующий этап — служебные поля + версий в одной таблице, приём в staging, проверка состава и атомарная публикация + вместе с допуском; затем контекст JOIN/recovery и отрицательные сетевые сценарии. + Отдельно уточняется удаление прежнего состава при доказанном исключении самого узла; + подтверждённый отзыв нельзя терять или заменять старым разрешающим бэкапом.