diff --git a/src/chat/member_sync_doc.md b/src/chat/member_sync_doc.md index 40756f4ae..8448b8381 100644 --- a/src/chat/member_sync_doc.md +++ b/src/chat/member_sync_doc.md @@ -95,8 +95,8 @@ CHAT-группы и уведомляет props-потребителей; общ доказательством неверной подписи. verify_signature отдельно различает MS_VERIFY_DEFERRED и MS_VERIFY_ERROR. Проверка source=1 placeholders не выполняется. verify_and_purge_all останавливается на первом отказе; атомарность — по каналу, -результаты ранее очищенных каналов сохраняются. init освобождает движок при отказе очистки, -start отклоняет запрос до создания Merkle-сессии, без done callback. +результаты ранее очищенных каналов сохраняются. init освобождает движок при отказе очистки. +start проверяет право запроса, но не очищает прежние версии: они нужны для fallback при commit_pull. Проверяются привязка node_id к X25519, доверенный Ed25519, подписи блока участника и владельца. Для дерева приглашений родитель может прийти позже ребёнка; commit_pull проверяет diff --git a/src/chat/merkle_sync_doc.md b/src/chat/merkle_sync_doc.md index 9c2dab0de..3f9900df5 100644 --- a/src/chat/merkle_sync_doc.md +++ b/src/chat/merkle_sync_doc.md @@ -58,6 +58,9 @@ stage_page получает также prefix и оба курсора стра commit_pull публикует результат после завершения своего прохода, до TURN/CHECK. abort_pull освобождает контекст как после commit, так и при restart/cancel/ошибке. В этом режиме apply_items необязателен; атомарность публикации обеспечивает модель. +Необязательный publish_pull вызывается только после успешного commit на выходе из +обработчика пакета. Контекст уже отсоединён: уведомления могут отменять сессии; +после них abort_pull освобождает контекст. Ошибка commit вызывает только abort_pull. start подключает (dataset, namespace) к текущему соединению и запрашивает контрольную точку. Повторные start объединяются, обход не сбрасывается, каждый принятый callback вызывается один раз.