#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
+16
View File
@@ -312,6 +312,22 @@ grep -q 'Сервер отклонил имя пользователя или п
echo "SASL failures must produce an actionable Russian message"
exit 1
}
grep -q 'func deleteGroupChat' Sources/Shared/Models/AppModel.swift || {
echo "Group chats must support local deletion"
exit 1
}
grep -q 'deletedGroupChatJIDs' Sources/Shared/Models/AppModel.swift || {
echo "Deleted group chats must stay suppressed for the session"
exit 1
}
grep -q 'Удалить чат' Sources/Shared/UI/GroupInfoView.swift || {
echo "Group info must offer deleting the chat"
exit 1
}
grep -q 'pendingGroupDeletion' Sources/Shared/UI/MainChatView.swift || {
echo "Chat list must offer deleting group chats"
exit 1
}
grep -q 'ArchiveSyncCursorPolicy.requestPosition' Sources/Shared/XMPP/XMPPService.swift || {
echo "MAM reconnects must prefer the durable archive UID over timestamps"
exit 1