Document feedback startup failure for excluded historical authors

This commit is contained in:
evgeny committed 2026-10-26 14:44:03 +01:00
1 parent e56790649a
commit 8e2036b435
2 files changed
+9 -1

No files matched your search

+3 -1
View File
@@ -29,7 +29,9 @@ struct chat_feedback_record {
/* Производный ID неизменяемого сообщения; 0/-1. Числа хешируются как BE64. */
int chat_message_id(uint64_t channel_id, uint64_t timestamp, const uint8_t signature[64], uint8_t id[32]);
/* Регистрирует FEEDBACK и восстанавливает производный индекс из подписанных записей; 0/-1. */
/* Регистрирует FEEDBACK и восстанавливает производный индекс из подписанных записей; 0/-1.
* Известный дефект: сохранённая запись автора с deleted=1 приводит к -1 и отказу chat_sync_init.
* История и текущий допуск пока используют одну проверку; см. doc/member_merkle_audit_findings.txt, раздел7. */
int chat_feedback_init(struct UTUN_INSTANCE* inst);
/* Подготовить таблицу канала; 0/-1. Не создаёт членство или сетевую группу. */
int chat_feedback_ensure_channel(struct UTUN_INSTANCE* inst, const char* channel);
+6
View File
@@ -3,6 +3,8 @@
Аудит 26.10.2026 частичный: движок и адаптер участников прочитаны полностью,
контракты ниже уточнены; найденный дефект очистки member_sync исправлен отдельно.
Разделы feedback/опросов целиком не пересверены в этом аудите.
Продолжение остановлено на подтверждённом отказе запуска feedback после исключения
автора сохранённого состояния. Исправление очистки завершено; новый дефект описан в разделе7 отчёта.
Результаты: [отчёт](../../doc/member_merkle_audit_findings.txt).
## Разделение ответственности
@@ -140,6 +142,10 @@ Wire-запись: message_id:32, node_id:8, kind:1, ver:8, data_len:2, data, si
Хеш листа включает канонические тела без signature: разные корректные подписи одного тела
не создают расхождения корней. Входящие и сохранённые подписи всё равно проверяются.
Членство проверяется через подписи дерева приглашений и join, привязывающий Ed25519 к узлу.
Текущий member_sync_verified_ed25519 также требует deleted=0. Его повторное применение
ко всем сохранённым feedback при init вызывает отказ запуска после исключения автора;
собственное членство узла и другие каналы могут оставаться корректными.
Контракт исторических состояний после исключения ещё требует согласования.
Слой feedback хранит подписанные байты независимо от наличия исходного сообщения;
семантику выбранных пунктов и эмодзи проверяет вызывающий модуль до учёта результата.