From 6c86e380a87f1a53b355e70b4c54efbceafa59b5 Mon Sep 17 00:00:00 2001 From: evgeny Date: Thu, 1 Oct 2026 15:06:08 +0300 Subject: [PATCH] Record DM stage validation and pending media delivery work --- doc/tasks.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/doc/tasks.md b/doc/tasks.md index 884d35ac..0561fe35 100644 --- a/doc/tasks.md +++ b/doc/tasks.md @@ -3,6 +3,32 @@ Сюда пишется список задач с короткой аннотацией. Если задача большая и имеет ТЗ - то ТЗ оформляется отдельным файлом, а сюда помещается аннотация и ссылка на ТЗ. ## Текущая задача +[+] **DM: надёжная доставка сообщений, первый этап pm.txt** — 01.10.2026: + атомарные история/seq/outbox, подписанные точные квитанции после commit, + live BGP-маршрут и durable очередь на суперузле с проверкой подписанной роли. + Повторы, out-of-order, rollback БД, неверные ACK и поздний PUT проверены; + 40 offline-сообщений доставлены после restart источника, первый offline DM — + после restart суперузла при выключенном источнике. Копии удалены по квитанции. + Подготовка ciphertext медиа использует ключ target и независимые nonce порций; + проверены границы 32 КиБ, пустые файлы, неверные ключи/UUID/hash и повреждения. + Clean-сборка ядра/Qt, test_dm, test_dm_e2e и полный check прошли: + 113 PASS, 0 FAIL, 1 SKIP (auto_socket_dynamic требует root); proxy/burst/load PASS. + Текущие гарантии и оставшаяся интеграция: `doc/dm_arch.md`. + +[ ] **DM: сетевая доставка и pending-медиа по pm.txt** — подключить общий + байтовый transfer с CM handle на всю операцию; owner dm_media, отдельные + файлы/таблицы, signed manifest и media receipt. Сначала durable job у S, + затем custody у M и уведомление S; доставка B и подтверждённое удаление у M. + TTL на M по конфигу, по умолчанию 7 дней; квота и stop с ожиданием workers. + Добавить сетевые тесты CM, обрыва/restart, custody, TTL/quota и удаления. + +[ ] **uasync: ложные ERROR об утечке перед cleanup** — 01.10.2026: + test_dm_e2e и существующий test_conn_mgr проходят, но uasync_destroy() + пишет Timer leak до освобождения отменённых heap/immediate таймеров. + После cleanup счётчики сходятся, финальная проверка проходит. Перенести + предварительные счётчики в DEBUG; ERROR оставить для реального расхождения + после cleanup, отдельно показывать активные и отменённые таймеры. + [+] **Статус подключения звонка в Qt и Android** — фактический путь router: прямое / reverse / indirect / нет подключения. Учитывается BGP fallback; события только при изменении, общий таймер 1с, сброс при завершении.