#10 add group chat delete alongside leave
- 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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user