docs(chat): record member, mute, and diagnostics audit evidence
This commit is contained in:
1 parent
cec3e27aab
commit
cfe4c24584
2 files changed
+66
No files matched your search
@@ -1320,3 +1320,58 @@ member_files_network,JOIN,attachment,feedback/poll. Desktop/APK build PASS;
|
||||
GUI12/12,включая test_group_avatars,и JVM155/155 (31 suite) PASS.
|
||||
Логи:/tmp/chat-avatar-final-{desktop-build,android-build,gui-results}.log.
|
||||
Fetch не принёс изменений;group_avatar.h/doc отмечены[V],прочий chat/ продолжается.
|
||||
|
||||
Снимки участников и диагностика — 27.10.2026,послеd3c5565c
|
||||
|
||||
Полностью прочитаны chat_member.c/.h и chat_status.c,сверены реальные GUI/JNI
|
||||
потребители и существующие group-scoped тесты services/radio. Negative control
|
||||
/tmp/chat-member-negative.log:ошибка finalize снимка даёт rc0/count1;новый
|
||||
test_chat_member на прежнем коде ожидаемо упал. Теперь все SQL-этапы завершаются
|
||||
до публикации out;отказ оставляет list NULL/count0 и прежний single-buffer.
|
||||
Callback свойств использует тот же single-query вместо предварительного SELECT.
|
||||
|
||||
Предел полного списка65535 согласован с u16 count события. Превышение запрещено
|
||||
целиком;рост массива ограничен,квадратичная insertion sort заменена qsort по
|
||||
online DESC,unsigned node_id ASC. Сериализатор дополняет обе строки NUL,
|
||||
включая хвост avatar_file. NULL/stopped/malformed trampoline-запросы логируются
|
||||
и освобождаются. Общий тихий validator канонического ID1..INT64_MAX используется
|
||||
описанием create/JOIN и member API;caller добавляет диагностический контекст.
|
||||
|
||||
radio_set_member_muted теперь владеет BEGIN IMMEDIATE/COMMIT;проверяются bind,
|
||||
step,changes1,finalize,COMMIT и finalize загрузки кэша. Память резервируется
|
||||
до записи,содержимое кэша/аудио меняется после commit. Чужая транзакция
|
||||
отклоняется;rollback failure с открытой транзакцией запрашивает owner-stop.
|
||||
Чат готовит снимок до переключения и меняет в нём committed флаг без нового
|
||||
SQL-чтения после commit. Удалённая аудио-callback группа не получает устаревшее
|
||||
MEMBER_UPDATED. Сам отказ последующего чтения не превращает переключатель
|
||||
в ложную ошибку. Отдельного negative control старого radio-пути не запускали.
|
||||
|
||||
Фиксированные8192-байтовые буферы status/metrics с неограниченным накоплением
|
||||
snprintf заменены checked strbuf;при OOM/форматировании нет частичного события.
|
||||
В strbuf устранено сужение size_t к32-битному allocator и небезопасное удвоение
|
||||
capacity;новый init с2^32 отклоняется до выделения нулевого блока. Node-name
|
||||
lookup проверяет SQL/нулевой размер и очищает допустимый выход при ошибке.
|
||||
Бинарный conn-list ограничен250 до переполнения count,links/inflight насыщаются;
|
||||
member-detail проверяет finalize,насыщает счётчики,его parser принимает короткий
|
||||
INVALID ответ с нулевыми полями неверного запроса,совпадающий с producer.
|
||||
|
||||
Новый test_chat_member:9 SQL/память отказов снимка с повторами,отказ property
|
||||
callback без события,9 SQL/память отказов mute с повторами,ABORT/IGNORE/veto/
|
||||
foreign txn/read-error after commit/failed rollback+owner-close. Независимый
|
||||
reader,audio callback и display event подтверждают согласованность DB/cache/
|
||||
звука/флага после commit. Проверены4 SQL-отказа detail,4 name lookup,неверные
|
||||
trampoline args/NUL,точные65535 sorted records/event и отказ65536 без усечения,
|
||||
status/metrics с300 линками>8КиБ,отказ strbuf без частичного события и повтор,
|
||||
граница allocator2^32;учёт аллокаций вернулся к baseline.
|
||||
PASS:/tmp/chat-member-final-unit.log. Ранний профиль member/services/radio3/3
|
||||
до расширения matrix:/tmp/chat-member-first-{test,services,radio}.log.
|
||||
|
||||
Диагностические ошибки fixture отражены отдельно:после неуспешной сборки
|
||||
(не хватало ETCP include) случайно запущен прежний бинарник;его PASS не засчитан.
|
||||
Новый собранный fixture затем упал на NULL ack_q искусственных300 линков:
|
||||
core817181,/home/user/.cache/utun-audit/chat-member-matrix.core,backtrace однозначно
|
||||
указал queue_total_bytes в collect_conn_metrics. Добавлена действительная пустая
|
||||
ACK-очередь,а не NULL вместо обязательного ресурса;новый запуск прошёл.
|
||||
Это ошибка fixture,не доказательство runtime-багa. Позднее имя node fixture
|
||||
задано явно,чтобы проверка не зависела от fallback Me. Новая общая проверка
|
||||
runtime41b35033/testcec3e27a выполняется отдельно;весь chat/ ещё не закрыт.
|
||||
@@ -4,6 +4,17 @@
|
||||
|
||||
## Текущие задачи
|
||||
|
||||
[+] **chat_member/status: полный снимок,границы формата и committed mute** — 27.10.2026.
|
||||
Подтверждён ложный успех снимка после finalize error;теперь SQL/память не дают частичный список.
|
||||
Список ограничен65535 записями,сортируется qsort (online,unsigned node_id);строки wire дополняются NUL.
|
||||
Запросы/канальные ID проверяются до чтения;callback свойств использует один завершённый SELECT.
|
||||
radio_set_member_muted владеет транзакцией,кэш/аудио обновляются после commit;чат готовит снимок до изменения,
|
||||
последующий SQL-отказ не превращает сохранённый переключатель в ошибку. Чужая транзакция запрещена.
|
||||
Диагностика использует checked strbuf;member_detail проверяет finalize и согласованный error codec.
|
||||
test_chat_member:SQL/память/ABORT/IGNORE/veto/foreign/rollback,readonly DB+cache+audio observer,
|
||||
65535/65536 участников,300 линков,OOM и allocator boundary PASS. Общие проверки — в отчёте.
|
||||
Подробнее:[chat_audit_findings.txt](chat_audit_findings.txt),«Снимки участников и диагностика».
|
||||
|
||||
[+] **group_avatar: атомарная публикация, проверенное чтение и безопасное событие приёма** — 27.10.2026.
|
||||
Подтверждён прежний ложный успех при отказе bind SHA256. set/apply владеют BEGIN IMMEDIATE/COMMIT,
|
||||
проверяют все SQL-этапы,отклоняют чужую транзакцию;события/STATE идут после commit.
|
||||
|
||||
Reference in new issue
Block a user