From c23f2d20585cc144e9a47cb6e45a007feb48e703 Mon Sep 17 00:00:00 2001 From: evgeny Date: Wed, 4 Nov 2026 01:07:09 +0100 Subject: [PATCH] Describe final callback ordering and preserve-before-verify startup behavior --- src/chat/member_sync_doc.md | 4 ++-- src/chat/merkle_sync_doc.md | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) 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 вызывается один раз.