diff --git a/apps/ios/product/views/chat-list.md b/apps/ios/product/views/chat-list.md index 56325ffe6c..7bf5e516c0 100644 --- a/apps/ios/product/views/chat-list.md +++ b/apps/ios/product/views/chat-list.md @@ -41,7 +41,7 @@ Managed by `ChatTagsModel` and `TagListView`: | Filter | PresetTag | Description | |---|---|---| | All | (none) | No filter, shows all chats | -| Unread | `.unread` | Chats with unread messages. Only the most recently active 5000 chats are loaded ([GAP] chat list is silently limited to 5000 chats), so a chat outside that set appears when it receives a message, counting that message as unread until the list is reloaded; muted chats and non-mentions in mentions-only groups stay out of this filter as always | +| Unread | `.unread` | Chats with unread messages. Only the most recently active 5000 chats are loaded ([GAP] chat list is silently limited to 5000 chats), so a chat outside that set appears when it receives a message; an unread message in its main scope is counted as unread until the list is reloaded; muted chats and non-mentions in mentions-only groups stay out of this filter as always | | Favorites | `.favorites` | User-favorited chats | | Groups | `.groups` | Group conversations only | | Contacts | `.contacts` | Direct contacts only | diff --git a/apps/ios/spec/client/chat-list.md b/apps/ios/spec/client/chat-list.md index 9b3d6e819b..b0ba90d8cd 100644 --- a/apps/ios/spec/client/chat-list.md +++ b/apps/ios/spec/client/chat-list.md @@ -100,7 +100,7 @@ Renders a single row in the chat list. Shows: | Chat name | `chatInfo.displayName` | Contact name, group name, or connection label | | Last message | `chat.chatItems.last` | Preview text of most recent message | | Timestamp | `chat.chatItems.last?.timestampText` | Relative time of last message | -| Unread badge | `chat.chatStats.unreadCount` | Circular badge with unread count. For a chat created from a received event this is that one item until the list is reloaded, since `/_get chats` loads at most 5000 chats ([GAP] chat list is silently limited to 5000 chats) | +| Unread badge | `chat.chatStats.unreadCount` | Circular badge with unread count. For a chat created from a received unread message in its main scope this is that one item (applied by `unreadCollector` about a second later), adjusted only by the app's own deltas until the list is reloaded, since `/_get chats` loads at most 5000 chats ([GAP] chat list is silently limited to 5000 chats) | | Mute icon | `chatInfo.chatSettings?.enableNtfs` | Bell-slash icon if notifications muted | | Pin icon | -- | Pin indicator for pinned chats | | Incognito icon | Contact.contactConnIncognito | Incognito mode indicator | diff --git a/apps/multiplatform/product/views/chat-list.md b/apps/multiplatform/product/views/chat-list.md index a0c7967868..f53360f09c 100644 --- a/apps/multiplatform/product/views/chat-list.md +++ b/apps/multiplatform/product/views/chat-list.md @@ -73,7 +73,7 @@ Display logic: - User tags show with emoji or label icon; long-press opens `TagsDropdownMenu` (edit, delete, change order) - "+" button at end opens `TagListEditor` for creating new tags - Only the most recently active 5000 chats are loaded ([GAP-12]), so a chat outside that set is absent - from the list until an event for it arrives, such as a message, or the user opens it from elsewhere in the app. A chat brought back by a received message is added counting that message as unread, + from the list until an event for it arrives, such as a message, or the user opens it from elsewhere in the app. A chat brought back by a received unread message in its main scope is added counting that message as unread, so it carries an unread badge, and appears under the Unread filter on the same terms as any other chat -- a muted chat does not, and a mentions-only group only for a mention. Its full count is shown once the list is reloaded diff --git a/apps/multiplatform/spec/client/chat-list.md b/apps/multiplatform/spec/client/chat-list.md index 2c9511c30c..10997a70c5 100644 --- a/apps/multiplatform/spec/client/chat-list.md +++ b/apps/multiplatform/spec/client/chat-list.md @@ -146,7 +146,8 @@ The `filteredChats` function (line ~1474) applies filters in this order: - `UserTag`: Matches chats whose `chatTags` contain the tag ID. - `Unread`: Matches chats whose `unreadTag` holds: `unreadChat`, or `unreadCount > 0` with notifications on, or `unreadMentions > 0` when set to mentions only. These come from the in-memory list only, which holds at most 5000 chats ([GAP-12]); a chat created from a received - event is counted as having that one item unread until the chat is opened or the list is reloaded. + unread message in its main scope is counted as having that one item unread until it is loaded with + `ChatPagination.Initial` (opened normally) or the list is reloaded. ### Search Bar