Skip to content

feat: show last message for ghost group (WPB-25285) - #5127

Open
sbakhtiarov wants to merge 1 commit into
feat/adminless-system-messagefrom
feat/ghost-group-message
Open

feat: show last message for ghost group (WPB-25285)#5127
sbakhtiarov wants to merge 1 commit into
feat/adminless-system-messagefrom
feat/ghost-group-message

Conversation

@sbakhtiarov

@sbakhtiarov sbakhtiarov commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

https://wearezeta.atlassian.net/browse/WPB-25285

https://wearezeta.atlassian.net/browse/WPB-25285


What's new in this PR?

Issues

For "ghost" groups (groups pending automatic deletion because they have no
eligible admins), the client should surface the pending-deletion state both in
the conversation list (as the last message) and inside the conversation itself,
and it must not be hidden behind unread-event summaries.

Causes

Kalium now exposes the pending deletion as a conversation-level field
(Conversation.adminlessGroupDeletionTimestamp) instead of a system message, so
the Android side needs to read that field and render the indicator itself.

Solutions

  • Conversation list (ConversationMapper): added
    adminlessDeleteAwareLastMessage, which for a non-archived conversation with a
    non-null adminlessGroupDeletionTimestamp overrides the last-message preview
    with the new last_message_adminless_delete_reminder string ("Will be deleted
    soon"), regardless of unread-event counts. Otherwise it falls back to the normal
    toUIPreview.
  • Inside the conversation (ConversationScreen / MessageList): surface
    adminlessGroupDeletionTimestamp from ConversationMessagesViewState and render
    an AdminlessGroupDeleteReminderItem — as a standalone item when the list is
    empty, or attached to the newest message (reverse-layout aware) otherwise.
  • Refactored SystemMessageItem to extract a reusable SystemMessageContentItem
    so the reminder can be rendered without a backing UIMessage, and pulled the
    reminder content into a standalone adminlessGroupDeleteReminderContent.
  • Removed the obsolete system-message plumbing now gone from Kalium:
    UIMessageContent.SystemMessage.AdminlessDeleteReminder and its mapping in
    SystemMessageContentMapper.
  • Added string last_message_adminless_delete_reminder → "Will be deleted soon".
  • Bumped the Kalium submodule to include the ghost-group support.

Dependencies

Needs releases with:

@sbakhtiarov
sbakhtiarov force-pushed the feat/ghost-group-message branch from 67d5bf4 to c77e5b9 Compare August 17, 2026 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant