From e7ae4025e271646155d35f2e2e3bfd101c06503d Mon Sep 17 00:00:00 2001 From: evgeny Date: Mon, 26 Oct 2026 13:52:24 +0100 Subject: [PATCH] Expose dataset registration for dependent model startup boundaries --- src/chat/merkle_sync.c | 5 +++++ src/chat/merkle_sync.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/chat/merkle_sync.c b/src/chat/merkle_sync.c index 958ce7a1..241b8275 100644 --- a/src/chat/merkle_sync.c +++ b/src/chat/merkle_sync.c @@ -624,6 +624,11 @@ int merkle_sync_register(struct UTUN_INSTANCE* inst, uint8_t dataset, const stru return 0; } +int merkle_sync_registered(struct UTUN_INSTANCE* inst, uint8_t dataset) { + struct merkle_sync* ms = inst ? inst->msync : NULL; + return ms && ms->datasets[dataset].ops; +} + void merkle_sync_destroy(struct UTUN_INSTANCE* inst) { struct merkle_sync* ms = inst ? inst->msync : NULL; if (!ms) return; diff --git a/src/chat/merkle_sync.h b/src/chat/merkle_sync.h index 91f6fc56..5e79ff90 100644 --- a/src/chat/merkle_sync.h +++ b/src/chat/merkle_sync.h @@ -68,6 +68,8 @@ int merkle_sync_init(struct UTUN_INSTANCE* inst, uint8_t svc_id, * ops/data_ctx живут до уничтожения движка. Каждый набор имеет свой Merkle-корень. */ int merkle_sync_register(struct UTUN_INSTANCE* inst, uint8_t dataset, const struct merkle_sync_data_ops* ops, void* data_ctx); +/* 1 — модель зарегистрирована, 0 — движок/модель ещё не созданы либо уже освобождены. */ +int merkle_sync_registered(struct UTUN_INSTANCE* inst, uint8_t dataset); /* Отменить сессии без done callbacks, снять обработчики и освободить движок. */ void merkle_sync_destroy(struct UTUN_INSTANCE* inst);