- Порезанный
- 26 августа 2026 г. в 02:23 UTC
- Автор
- kamo
- Обещать
- 486a456
Три вывода обзора в отношении Задачи 21, все утвержденные планом: - MarkSmsRead/markAiRead не имел забора для чтения: обновление или входящий толчок разрешение между оптимистичным локальным клиром и сервером, записывающим Чтение может нести все еще предварительно прочитанный счет и воскресить только что очищенный значок. Нечитанная трансляция VOIPService отправляет полный вычисленный на сервере снимок Все изменения были достижимы, а не теоретически. фиксируется путем извлечения Правило фехтования в чистом, проверенном приложении FlatUnreadSnapshot (зеркало) unreadState.ts's own pendingReads fence for a flat id -> count map, applied в refreshSms, refreshAi и обработчике SMS WS, охраняемый отложенным SmsReadsRef / в ожиданииAiReadsRef провел точно так же, как начатьMarkRead/endMarkRead провести Забор от MarkAsRead. - те же сессии сравниваются только с непрочитанным счетом и senderId, поэтому сеанс, Сеанс Тип изменился между опросами (старый кадр MediaService, а затем новый) с неизмененным счетчиком и отправителем между ними рассматривается как неизменно — устаревшая классификация чатов переживет развертывание, которое Ввел сессию Тип, дожив до следующего пересчета этой сессии. Также можно сравнить сессию. - Добавлено покрытие регрессии для обоих: необработанная полезная нагрузка, проходящая через примените UnreadPayload, чтобы доказать, что sessionType действительно выживает при парсинге Оригинальный зазор позволил этому кораблю пройти чистую проверку типа и зеленый люкс. ********************************************** без исправления сессий (проверено RED перед восстановлением исправления).