#10 add group chat delete alongside leave
iOS CI / Build and Test SwiftUI App (push) Canceled after 0s
Build Unsigned iOS and macOS Apps / Build Unsigned iOS IPA (push) Canceled after 0s
Build Unsigned iOS and macOS Apps / Build macOS ZIP (push) Canceled after 0s

- Delete a group chat from GroupInfoView or via a swipe in the chat
  list: remove the conversation and its messages from SwiftData,
  clean per-chat state, and leave the room on the server first when
  joined.
- Keep "Покинуть комнату" as leave-without-deleting and suppress
  deleted rooms for the session so roomState events cannot recreate
  them; an explicit rejoin or a fresh invitation clears the
  suppression.
- Add verify.sh invariants and document the behaviour in
  ARCHITECTURE.md.
This commit is contained in:
wt
2026-08-29 01:56:23 +07:00
parent fc07855036
commit 4566b59ff1
5 changed files with 132 additions and 0 deletions
+5
View File
@@ -97,6 +97,11 @@ stanza отдельно сохраняет назначенный комнато
декодер считает payload дубликатом, поэтому последующие XEP-0461 ответы остаются
межклиентно совместимыми.
Выход из комнаты оставляет чат в списке как «Не подключено». Удаление чата
убирает его и локальную историю с устройства (и предварительно выходит из
комнаты на сервере, если участник в ней); подавление на время сессии не даёт
событиям комнаты создать удалённый чат заново.
XEP-0424 retraction проходит через тот же plaintext/OMEMO-путь, что и исходное
сообщение. Перед применением `AppModel` проверяет conversation и JID автора,
после чего заменяет payload tombstone, очищает медиакэш и блокирует дальнейшее