From 451bb5148f3f80b203262b9ac5b4cb70b3af8075 Mon Sep 17 00:00:00 2001 From: sh <37271604+shumvgolove@users.noreply.github.com> Date: Tue, 21 Jul 2026 12:25:22 +0400 Subject: [PATCH 01/22] core: fix missing ": " in CLI display name prompt (#7280) --- src/Simplex/Chat/Core.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Simplex/Chat/Core.hs b/src/Simplex/Chat/Core.hs index 5bcd381fed..c8cf201421 100644 --- a/src/Simplex/Chat/Core.hs +++ b/src/Simplex/Chat/Core.hs @@ -156,7 +156,7 @@ createActiveUser cc CoreChatOpts {chatRelay, headless} createBot_ userDisplayNam \It is only stored on your device and you can change it later." where loop = do - displayName <- T.pack <$> withPrompt "display name" getLine + displayName <- T.pack <$> withPrompt "display name: " getLine createUser loop False $ mkProfile displayName mkProfile displayName = Profile {displayName, fullName = "", shortDescr = Nothing, description = Nothing, image = Nothing, contactLink = Nothing, peerType = Nothing, preferences = Nothing, badge = Nothing, contactDomain = Nothing} createUser onError clientService p = From afdae36ea39281955db54fffe13dc3a62b6446a6 Mon Sep 17 00:00:00 2001 From: sh <37271604+shumvgolove@users.noreply.github.com> Date: Tue, 21 Jul 2026 12:25:49 +0400 Subject: [PATCH 02/22] tests: enable names role for directory channel name tests (#6643) --- tests/Bots/DirectoryTests.hs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/Bots/DirectoryTests.hs b/tests/Bots/DirectoryTests.hs index 0d49e075b9..15f713cd1c 100644 --- a/tests/Bots/DirectoryTests.hs +++ b/tests/Bots/DirectoryTests.hs @@ -1760,6 +1760,7 @@ withDirectoryServiceCfgOwnersGroup ps cfg createOwnersGroup webFolder test = do withNewTestChatCfg ps cfg serviceDbPrefix directoryProfile $ \ds -> withNewTestChatCfg ps cfg "super_user" aliceProfile $ \superUser -> do connectUsers ds superUser + enableNamesRole ds when createOwnersGroup $ do superUser ##> "/g owners" superUser <## "group #owners is created" @@ -2131,6 +2132,7 @@ testDirectoryChannelName ps = withSmpServerAndNames $ \reg -> withDirectoryServiceCfg ps testCfg $ \superUser dsLink -> withNewTestChatCfg ps testCfg "bob" bobProfile $ \bob -> withRelay ps $ \relay -> do + enableNamesRole bob bob `connectVia` dsLink (shortLink, _fullLink) <- prepareChannel1Relay "news" bob relay registerName reg newsName (channelNameRecord "news" (T.pack shortLink)) @@ -2171,6 +2173,7 @@ testDirectoryChannelNameNotVerified ps = withSmpServerAndNames $ \reg -> withDirectoryServiceCfg ps testCfg $ \superUser dsLink -> withNewTestChatCfg ps testCfg "bob" bobProfile $ \bob -> withRelay ps $ \relay -> do + enableNamesRole bob bob `connectVia` dsLink (shortLink, _fullLink) <- prepareChannel1Relay "news" bob relay registerName reg newsName (channelNameRecord "news" (T.pack shortLink)) From 4cf5a8d9ce76b8e34e9d0f6baf80fa61ce110b38 Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Wed, 22 Jul 2026 07:22:48 +0000 Subject: [PATCH 03/22] docs: Improve FAQ.md (#6360) * docs: Add FAQ * corrections Co-authored-by: Evgeny --------- Co-authored-by: Evgeny --- docs/FAQ.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/FAQ.md b/docs/FAQ.md index 8c14168811..21cb08417f 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -21,6 +21,7 @@ revision: 13.08.2025 - [Why cannot I delete messages I sent from my contact's device?](#why-cannot-i-delete-messages-i-sent-from-my-contacts-device) - [What do group roles mean?](#what-do-group-roles-mean) - [I don't want to share a web link or a QR code. How can I connect?](#i-dont-want-to-share-a-web-link-or-a-qr-code-how-can-i-connect) +- [How to change servers to my own](#how-to-change-servers-to-my-own) [Troubleshooting](#troubleshooting) - [I do not receive messages or message notifications](#i-do-not-receive-messages-or-message-notifications) @@ -175,6 +176,16 @@ For example, this link: `https://smp18.simplex.im/i#E74vSxMwDnEx6DAvRCZmzBeZwwAs becomes: `simplex:/i#E74vSxMwDnEx6DAvRCZmzBeZwwAseJUD/yVTHjaaH_EzL19DG7fvd46Mjry3IBqYT0UMo5G7l4jQ?h=smp18.simplex.im` +### How to change servers to my own? + +Add your server in Settings -> Network & servers -> Your servers. If you have multiple profiles, you need to add your server in every profile. +After that, disable all preset servers. If you have multiple profiles, you must first add your server to all profiles for this option to be available. + +To resolve SimpleX public names, if your server does not support it, you may leave preset servers enabled only for resolving the public names. + +Please note: configured servers only determine which servers will be used for the new connections (members/contacts). Previously created connections don't switch automatically. You can manually switch all existing contacts and small/important groups (each member needs to be switched), and then leave and re-join all large groups. +You can switch contacts/members manually to another server by going to their profile and clicking on "Change receiving address", note that the current server must be online for the address change to work. + ## Troubleshooting ### I do not receive messages or message notifications From 9586c974395437e3d570a3b03e77ab2965b418fb Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Wed, 22 Jul 2026 07:28:54 +0000 Subject: [PATCH 04/22] ui: show XFTP servers used for a file in message info (#7088) Surface the XFTP servers that hosted a file's chunks in the message info screen (Android, desktop, iOS), so a user can see which servers they are downloading from (or, for sent files, uploading to) whenever they want to know. APIGetChatItemInfo now returns fileXftpServers, derived from the stored file description (private snd descr for sent items, rcv descr for received items); extraction is best-effort and never fails the call. --- .../Shared/Views/Chat/ChatItemInfoView.swift | 6 + apps/ios/SimpleXChat/ChatTypes.swift | 1 + .../chat/simplex/common/model/ChatModel.kt | 3 +- .../common/views/chat/ChatItemInfoView.kt | 14 ++ .../commonMain/resources/MR/base/strings.xml | 2 + ...26-06-17-message-info-file-xftp-servers.md | 140 ++++++++++++++++++ src/Simplex/Chat/Library/Commands.hs | 3 +- src/Simplex/Chat/Library/Internal.hs | 29 +++- src/Simplex/Chat/Messages.hs | 5 +- src/Simplex/Chat/Store/Files.hs | 10 ++ 10 files changed, 205 insertions(+), 8 deletions(-) create mode 100644 plans/2026-06-17-message-info-file-xftp-servers.md diff --git a/apps/ios/Shared/Views/Chat/ChatItemInfoView.swift b/apps/ios/Shared/Views/Chat/ChatItemInfoView.swift index 99de13451f..2213b34586 100644 --- a/apps/ios/Shared/Views/Chat/ChatItemInfoView.swift +++ b/apps/ios/Shared/Views/Chat/ChatItemInfoView.swift @@ -216,6 +216,9 @@ struct ChatItemInfoView: View { } } } + if ci.file != nil, let servers = chatItemInfo?.fileXftpServers, !servers.isEmpty { + infoRow("File servers", servers.map(serverHostname).joined(separator: "\n")) + } } } @@ -545,6 +548,9 @@ struct ChatItemInfoView: View { shareText += [String.localizedStringWithFormat(NSLocalizedString("File status: %@", comment: "copied message info"), file.fileStatus.id)] } } + if ci.file != nil, let servers = chatItemInfo?.fileXftpServers, !servers.isEmpty { + shareText += [String.localizedStringWithFormat(NSLocalizedString("File servers: %@", comment: "copied message info"), servers.map(serverHostname).joined(separator: ", "))] + } if let qi = ci.quotedItem { shareText += ["", NSLocalizedString("## In reply to", comment: "copied message info")] let t = qi.text diff --git a/apps/ios/SimpleXChat/ChatTypes.swift b/apps/ios/SimpleXChat/ChatTypes.swift index 91b2a85fa8..d02bff75f8 100644 --- a/apps/ios/SimpleXChat/ChatTypes.swift +++ b/apps/ios/SimpleXChat/ChatTypes.swift @@ -6033,6 +6033,7 @@ public struct ChatItemInfo: Decodable, Hashable { public var itemVersions: [ChatItemVersion] public var memberDeliveryStatuses: [MemberDeliveryStatus]? public var forwardedFromChatItem: AChatItem? + public var fileXftpServers: [String]? } public struct ChatItemVersion: Decodable, Hashable { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt index a755b8bc6e..284738fe14 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt @@ -5383,7 +5383,8 @@ data class ChatTag( class ChatItemInfo( val itemVersions: List, val memberDeliveryStatuses: List?, - val forwardedFromChatItem: AChatItem? + val forwardedFromChatItem: AChatItem?, + val fileXftpServers: List = emptyList() ) @Serializable diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatItemInfoView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatItemInfoView.kt index 0679edd4f9..64c6160665 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatItemInfoView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatItemInfoView.kt @@ -30,6 +30,7 @@ import chat.simplex.common.ui.theme.* import chat.simplex.common.views.chat.group.MemberProfileImage import chat.simplex.common.views.chat.item.* import chat.simplex.common.views.chatlist.* +import chat.simplex.common.views.usersettings.networkAndServers.serverHostname import chat.simplex.res.MR import dev.icerock.moko.resources.ImageResource import kotlinx.serialization.encodeToString @@ -290,6 +291,16 @@ fun ChatItemInfoView(chatRh: Long?, ci: ChatItem, ciInfo: ChatItemInfo, devTools } } } + if (ci.file != null && ciInfo.fileXftpServers.isNotEmpty()) { + SectionDividerSpaced(maxTopPadding = true, maxBottomPadding = false) + SectionView(stringResource(MR.strings.info_row_file_servers)) { + ciInfo.fileXftpServers.forEach { server -> + SectionItemView { + Text(serverHostname(server), maxLines = 1, overflow = TextOverflow.Ellipsis, modifier = Modifier.fillMaxWidth()) + } + } + } + } } @Composable @@ -581,6 +592,9 @@ fun itemInfoShareText(chatModel: ChatModel, ci: ChatItem, chatItemInfo: ChatItem shareText.add(String.format(generalGetString(MR.strings.share_text_file_status), jsonShort.encodeToString(ci.file.fileStatus))) } } + if (ci.file != null && chatItemInfo.fileXftpServers.isNotEmpty()) { + shareText.add(String.format(generalGetString(MR.strings.share_text_file_servers), chatItemInfo.fileXftpServers.joinToString(", ") { serverHostname(it) })) + } val qi = ci.quotedItem if (qi != null) { shareText.add("") diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml index 6989521c6b..617c268b8a 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml @@ -2025,6 +2025,7 @@ Record updated at Message status File status + File servers Sent at Created at Received at @@ -2035,6 +2036,7 @@ Record updated at: %s Message status: %s File status: %s + File servers: %s Sent at: %s Created at: %s Received at: %s diff --git a/plans/2026-06-17-message-info-file-xftp-servers.md b/plans/2026-06-17-message-info-file-xftp-servers.md new file mode 100644 index 0000000000..f7803984cf --- /dev/null +++ b/plans/2026-06-17-message-info-file-xftp-servers.md @@ -0,0 +1,140 @@ +# Plan: Show XFTP servers used for a file in Message Info + +## Goal +In the message-info screen, when the message contains a file, show the list of XFTP servers that hosted the file's chunks ("servers used to upload the file"). + +## Why this is needed +For transparency: a recipient downloads a file's chunks from XFTP relays without any visible indication of which servers those are. Surfacing them in message info lets a user see exactly what servers they are downloading from (and, for sent files, uploading to) whenever they want to know — useful for trust, debugging, and deciding whether to download. + +## Decisions (confirmed) +- **Direction:** Both sent and received files. +- **Visibility:** Always shown when the item has a file (not gated behind Developer tools). +- **Platform:** Android, desktop, and iOS. + +## Why this needs a core change (not Kotlin-only) +The server list is **already known to the app** — the file description (which lists each chunk's XFTP server replicas) is what the agent uses to upload/download. But that data lives in the **core (Haskell) layer**: it's stored in the `files` table (`private_snd_file_descr` for sent, the rcv file descr row for received) and parsed inside the core. It is **never surfaced across the core→client API boundary**: the client-facing `CIFile` and `ChatItemInfo` types carry no server info. So this is a **plumbing task** (expose existing data through the API response), not an algorithmic one. The core already has the extraction helper. + +## Existing building blocks (no new logic needed) +- `Internal.hs:764-766` — `fileServers` extracts the unique `[XFTPServer]` from a parsed description's chunk replicas. Currently a local `where` helper; will be lifted to a reusable top-level function. +- `Internal.hs:747` — `parseFileDescription :: Text -> CM (ValidFileDescription 'FRecipient)`. +- `Store/Files.hs:42` — `getRcvFileDescrByRcvFileId` returns `RcvFileDescr {fileDescrText, fileDescrComplete}` (received files). +- `Store/Files.hs:197` — `setSndFTPrivateSndDescr` stores `private_snd_file_descr` (sent files). A matching getter must be added (none exists today). +- `XFTPServer` already JSON-encodes to a string on the wire (see `XFTPServerSummary.xftpServer :: XFTPServer` → Kotlin `xftpServer: String`), so the Kotlin field can be `List`. + +--- + +## Implementation + +### 1. Core — extraction helper (`src/Simplex/Chat/Library/Internal.hs`) +- Lift `fileServers` out of `receiveViaCompleteFD`'s `where` block to a top-level function, generalized to work on any party's description chunks: + ```haskell + fileDescrServers :: FD.FileDescription p -> [XFTPServer] + fileDescrServers FD.FileDescription {chunks} = + S.toList $ S.fromList $ concatMap (\FD.FileChunk {replicas} -> map (\FD.FileChunkReplica {server} -> server) replicas) chunks + ``` + (Keep `receiveViaCompleteFD` working by calling the lifted helper.) +- Add a convenience that resolves a file's servers by direction, returning `[]` when no XFTP description exists (inline/legacy files): + ```haskell + getChatItemFileServers :: User -> ChatItem c d -> CM [XFTPServer] + ``` + - For **received** (`SMDRcv`) with an XFTP file: `getRcvFileDescrByRcvFileId` → `parseFileDescription` → `fileDescrServers`. + - For **sent** (`SMDSnd`) with an XFTP file: read `private_snd_file_descr` (new getter) → parse the sender description → `fileDescrServers`. + - Guard on `fileProtocol == FPXFTP`; wrap parse in tolerant error handling so a missing/partial descr yields `[]` (no crash, no section). + +### 2. Core — store getter (`src/Simplex/Chat/Store/Files.hs`) +- Add `getSndFTPrivateSndDescr :: DB.Connection -> User -> FileTransferId -> IO (Maybe Text)` reading `private_snd_file_descr` from `files` (mirror of `setSndFTPrivateSndDescr`; column already selected at `Files.hs:799`). Export it. + +### 3. Core — extend `ChatItemInfo` (`src/Simplex/Chat/Messages.hs`) +- Add field: + ```haskell + data ChatItemInfo = ChatItemInfo + { itemVersions :: [ChatItemVersion], + memberDeliveryStatuses :: Maybe (NonEmpty MemberDeliveryStatus), + forwardedFromChatItem :: Maybe AChatItem, + fileXftpServers :: [XFTPServer] -- NEW (empty when no file / not XFTP) + } + ``` +- `$(JQ.deriveJSON defaultJSON ''ChatItemInfo)` at `Messages.hs:1531` regenerates the instance automatically. Import `XFTPServer` if not already in scope. +- Note: using `[XFTPServer]` (not `Maybe`) keeps the JSON additive and the Kotlin side simple; empty list = nothing to show. + +### 4. Core — populate in handler (`src/Simplex/Chat/Library/Commands.hs:619`) +- In `APIGetChatItemInfo`, after computing `forwardedFromChatItem`: + ```haskell + fileXftpServers <- getChatItemFileServers user ci + pure $ CRChatItemInfo user aci ChatItemInfo {itemVersions, memberDeliveryStatuses, forwardedFromChatItem, fileXftpServers} + ``` + +### 5. Kotlin model (`apps/multiplatform/.../model/ChatModel.kt:5207`) +```kotlin +class ChatItemInfo( + val itemVersions: List, + val memberDeliveryStatuses: List?, + val forwardedFromChatItem: AChatItem?, + val fileXftpServers: List = emptyList() // NEW; server hosts as strings +) +``` +(`XFTPServer` serializes to a string, matching the existing `XFTPServerSummary.xftpServer: String`.) + +### 6. Desktop/shared UI (`apps/multiplatform/.../views/chat/ChatItemInfoView.kt`) +- In `Details()` (`:250-283`), after the existing file-status block, add (always-visible, when present): + ```kotlin + if (ci.file != null && ciInfo.fileXftpServers.isNotEmpty()) { + // section header + one InfoRow/host per server + } + ``` + - Render as its own `SectionView` with a title (e.g. "File servers") and one row per server host, styled like the existing info rows. For long host strings, single-line with ellipsis (consistent with the long-name handling already on this branch). +- Add the servers to the shareable text in `itemInfoShareText` (`:534-580`), near the existing file-status share line (`:564-565`), so "Share" / copy includes them. + +### 7. Translations (additive only — never rename/remove keys) +- Add one new key to `apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml`, e.g.: + ```xml + File servers + ``` + Base locale only; Weblate fans out to other locales. Do not touch existing keys. + +### 8. iOS model (`apps/ios/SimpleXChat/ChatTypes.swift:5773`) +Same core change (shared `libsimplex`), so iOS only needs the Swift model + view. Add the optional field (optional so an absent key never breaks decoding): +```swift +public struct ChatItemInfo: Decodable, Hashable { + public var itemVersions: [ChatItemVersion] + public var memberDeliveryStatuses: [MemberDeliveryStatus]? + public var forwardedFromChatItem: AChatItem? + public var fileXftpServers: [String]? // NEW +} +``` + +### 9. iOS UI (`apps/ios/Shared/Views/Chat/ChatItemInfoView.swift`) +- In `details()`, after the `developerTools` block (always-visible when present): + ```swift + if ci.file != nil, let servers = chatItemInfo?.fileXftpServers, !servers.isEmpty { + infoRow("File servers", servers.map(serverHostname).joined(separator: "\n")) + } + ``` + `serverHostname(_:)` is public in `SimpleXChat` (`ErrorAlert.swift:142`). +- Add the same to `itemInfoShareText()` (joined with ", "). Strings are inline `NSLocalizedString` (no separate resource file to edit). + +--- + +## Edge cases / behavior +- **Inline / legacy files** (no XFTP description): `fileXftpServers == []` → section hidden. No crash. +- **Sent file before upload completes** (`private_snd_file_descr` not yet set): `[]` → hidden until available. +- **Received file not yet accepted/downloaded:** the rcv description exists as soon as the offer is received (it's what enables download), so servers are available even before download. ✓ +- **Multiple chunks across different servers:** deduped via `S.fromList`; all distinct servers listed. +- **Large files (any size up to the limits):** servers are accurate regardless of size. Chat-message files **never** use XFTP redirect — the description is split across multiple `XMsgFileDescr` messages (`splitFileDescr`) and reassembled in full by the recipient (`appendRcvFD`), so a received chat file always carries the real data-chunk servers. (`maxFileSize` = 1 GB soft, `maxFileSizeHard` = 5 GB; XFTP chunk sizes 64 KB / 256 KB / 1 MB / 4 MB.) +- **Redirect descriptions:** XFTP redirect (a small `redirect = Just` description whose chunks point to the relay hosting the real description) is used **only** for *standalone file links* (`SFDONE` `Nothing` branch → `xftpSndFileRedirect`), which have no chat item and never appear in message info. The chat-message branch never redirects, so no redirect description can reach `getChatItemFileServers` — no guard is needed. + +## Build / verification +- **Heaviest step:** rebuild the native core lib (`libsimplex`) consumed by the multiplatform app, since core types changed. Without the rebuild, the new JSON field is simply ignored by the old lib (the Kotlin default `emptyList()` keeps it backward-compatible — section just won't appear). +- Tests: a core unit/integration check that `APIGetChatItemInfo` returns a non-empty `fileXftpServers` for an XFTP file (sent and received), empty for a text message and for an inline file. +- Manual: send a file → open message info → confirm the server list; repeat on the receiving device for the received item. + +## Touch list +- `src/Simplex/Chat/Library/Internal.hs` — lift `fileDescrServers`, add `getChatItemFileServers`. +- `src/Simplex/Chat/Store/Files.hs` — add `getSndFTPrivateSndDescr` (+ export). +- `src/Simplex/Chat/Messages.hs` — add `fileXftpServers` to `ChatItemInfo`. +- `src/Simplex/Chat/Library/Commands.hs` — populate it in `APIGetChatItemInfo`. +- `apps/multiplatform/.../model/ChatModel.kt` — add Kotlin field. +- `apps/multiplatform/.../views/chat/ChatItemInfoView.kt` — UI section + share text. +- `apps/multiplatform/.../resources/MR/base/strings.xml` — new label key. +- `apps/ios/SimpleXChat/ChatTypes.swift` — add `fileXftpServers` to the Swift `ChatItemInfo`. +- `apps/ios/Shared/Views/Chat/ChatItemInfoView.swift` — UI row in `details()` + `itemInfoShareText()`. diff --git a/src/Simplex/Chat/Library/Commands.hs b/src/Simplex/Chat/Library/Commands.hs index c8786a92de..4d1de3bc72 100644 --- a/src/Simplex/Chat/Library/Commands.hs +++ b/src/Simplex/Chat/Library/Commands.hs @@ -693,7 +693,8 @@ processChatCommand cxt nm = \case (SCTGroup, SMDSnd) -> L.nonEmpty <$> withFastStore' (`getGroupSndStatuses` itemId) _ -> pure Nothing forwardedFromChatItem <- getForwardedFromItem user ci - pure $ CRChatItemInfo user aci ChatItemInfo {itemVersions, memberDeliveryStatuses, forwardedFromChatItem} + fileXftpServers <- getChatItemFileServers user dir ci + pure $ CRChatItemInfo user aci ChatItemInfo {itemVersions, memberDeliveryStatuses, forwardedFromChatItem, fileXftpServers} where getForwardedFromItem :: User -> ChatItem c d -> CM (Maybe AChatItem) getForwardedFromItem user ChatItem {meta = CIMeta {itemForwarded}} = case itemForwarded of diff --git a/src/Simplex/Chat/Library/Internal.hs b/src/Simplex/Chat/Library/Internal.hs index f4d684a3c3..7bddfcaba5 100644 --- a/src/Simplex/Chat/Library/Internal.hs +++ b/src/Simplex/Chat/Library/Internal.hs @@ -764,7 +764,7 @@ receiveViaCompleteFD user fileId RcvFileDescr {fileDescrText, fileDescrComplete} if userApprovedRelays then receive' rd True else do - let srvs = fileServers rd + let srvs = fileDescrServers rd unknownSrvs <- getUnknownSrvs srvs let approved = null unknownSrvs ifM @@ -777,9 +777,6 @@ receiveViaCompleteFD user fileId RcvFileDescr {fileDescrText, fileDescrComplete} aFileId <- withAgent $ \a -> xftpReceiveFile a (aUserId user) rd cfArgs approved startReceivingFile user fileId withStore' $ \db -> updateRcvFileAgentId db fileId (Just $ AgentRcvFileId aFileId) - fileServers :: ValidFileDescription 'FRecipient -> [XFTPServer] - fileServers (FD.ValidFileDescription FD.FileDescription {chunks}) = - S.toList $ S.fromList $ concatMap (\FD.FileChunk {replicas} -> map (\FD.FileChunkReplica {server} -> server) replicas) chunks getUnknownSrvs :: [XFTPServer] -> CM [XFTPServer] getUnknownSrvs srvs = do knownSrvs <- L.map protoServer' <$> getKnownAgentServers SPXFTP user @@ -1747,6 +1744,30 @@ parseFileDescription :: FilePartyI p => Text -> CM (ValidFileDescription p) parseFileDescription = liftEither . first (ChatError . CEInvalidFileDescription) . (strDecode . encodeUtf8) +-- | Unique XFTP servers hosting the file's chunks, parsed from a stored file description. +fileDescrServers :: ValidFileDescription p -> [XFTPServer] +fileDescrServers (FD.ValidFileDescription FD.FileDescription {chunks}) = + S.toList $ S.fromList $ concatMap (\FD.FileChunk {replicas} -> map (\FD.FileChunkReplica {server} -> server) replicas) chunks + +-- | XFTP servers the file's data chunks were uploaded to (sender's servers for sent items, +-- the same servers via the recipient description for received items). +-- Returns [] for non-XFTP/inline files or when no description is available; never fails the caller. +getChatItemFileServers :: User -> SMsgDirection d -> ChatItem c d -> CM [XFTPServer] +getChatItemFileServers user dir ci = case ci of + ChatItem {file = Just CIFile {fileId, fileProtocol = FPXFTP}} -> + itemFileServers fileId `catchAllErrors` \_ -> pure [] + _ -> pure [] + where + itemFileServers fileId = case dir of + SMDSnd -> do + sfd_ <- withStore' $ \db -> getSndFTPrivateSndDescr db user fileId + case sfd_ of + Just sfdText -> fileDescrServers <$> (parseFileDescription sfdText :: CM (ValidFileDescription 'FSender)) + Nothing -> pure [] + SMDRcv -> do + RcvFileDescr {fileDescrText} <- withStore $ \db -> getRcvFileDescrByRcvFileId db fileId + fileDescrServers <$> (parseFileDescription fileDescrText :: CM (ValidFileDescription 'FRecipient)) + sendDirectFileInline :: User -> Contact -> FileTransferMeta -> SharedMsgId -> CM () sendDirectFileInline user ct ft sharedMsgId = do msgDeliveryId <- sendFileInline_ ft sharedMsgId $ sendDirectContactMessage user ct diff --git a/src/Simplex/Chat/Messages.hs b/src/Simplex/Chat/Messages.hs index b4709fb5c5..836fb004fe 100644 --- a/src/Simplex/Chat/Messages.hs +++ b/src/Simplex/Chat/Messages.hs @@ -55,7 +55,7 @@ import Simplex.Messaging.Crypto.File (CryptoFile (..)) import qualified Simplex.Messaging.Crypto.File as CF import Simplex.Messaging.Encoding.String import Simplex.Messaging.Parsers (defaultJSON, dropPrefix, enumJSON, parseAll, sumTypeJSON) -import Simplex.Messaging.Protocol (BlockingInfo, MsgBody) +import Simplex.Messaging.Protocol (BlockingInfo, MsgBody, XFTPServer) import Simplex.Messaging.Util (eitherToMaybe, safeDecodeUtf8, (<$?>)) data ChatType = CTDirect | CTGroup | CTLocal | CTContactRequest | CTContactConnection @@ -1345,7 +1345,8 @@ instance TextEncoding CIForwardedFromTag where data ChatItemInfo = ChatItemInfo { itemVersions :: [ChatItemVersion], memberDeliveryStatuses :: Maybe (NonEmpty MemberDeliveryStatus), - forwardedFromChatItem :: Maybe AChatItem + forwardedFromChatItem :: Maybe AChatItem, + fileXftpServers :: [XFTPServer] } deriving (Show) diff --git a/src/Simplex/Chat/Store/Files.hs b/src/Simplex/Chat/Store/Files.hs index 762583b7a5..5d862ea258 100644 --- a/src/Simplex/Chat/Store/Files.hs +++ b/src/Simplex/Chat/Store/Files.hs @@ -20,6 +20,7 @@ module Simplex.Chat.Store.Files createSndFileTransferXFTP, createSndFTDescrXFTP, setSndFTPrivateSndDescr, + getSndFTPrivateSndDescr, updateSndFTDescrXFTP, createExtraSndFTDescrs, updateSndFTDeliveryXFTP, @@ -210,6 +211,15 @@ setSndFTPrivateSndDescr db User {userId} fileId sfdText = do "UPDATE files SET private_snd_file_descr = ?, updated_at = ? WHERE user_id = ? AND file_id = ?" (sfdText, currentTs, userId, fileId) +getSndFTPrivateSndDescr :: DB.Connection -> User -> FileTransferId -> IO (Maybe Text) +getSndFTPrivateSndDescr db User {userId} fileId = + fmap (maybe Nothing fromOnly) $ + maybeFirstRow id $ + DB.query + db + "SELECT private_snd_file_descr FROM files WHERE user_id = ? AND file_id = ?" + (userId, fileId) + updateSndFTDescrXFTP :: DB.Connection -> User -> SndFileTransfer -> Text -> IO () updateSndFTDescrXFTP db user@User {userId} sft@SndFileTransfer {fileId, fileDescrId} rfdText = do currentTs <- getCurrentTime From 7fc2a6e6bdf63a8d5ec6e8acd753861a604f80ea Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Wed, 22 Jul 2026 07:32:37 +0000 Subject: [PATCH 05/22] android, desktop: fix draft loss when switching to chat where user cannot send messages (#7239) * android, desktop: save draft when switching to chat where user cannot send messages On desktop, chat and chatId change in the same recomposition when another chat is opened from the always-visible chat list. The effect clearing compose state of a non-sendable chat (observer, channel subscriber, review by admins) was composed before the draft-saving KeyChangeEffect and ran first, wiping the live compose state before it could be saved and then clearing the previously saved draft via clearPrevDraft. Effects launch in composition order, so the clearing effect is moved after KeyChangeEffect: the previous chat's draft is saved first, and clearCurrentDraft is a no-op for it because draftChatId no longer matches the opened chat. Clearing the opened chat's own draft when it cannot send is preserved, as is clearing when the open chat itself becomes non-sendable (only the sendMsgEnabled key changes). * plans: investigation and justification for draft message loss fix --- .../simplex/common/views/chat/ComposeView.kt | 15 +++-- ...14-fix-draft-message-loss-on-restricted.md | 67 +++++++++++++++++++ 2 files changed, 75 insertions(+), 7 deletions(-) create mode 100644 plans/2026-07-14-fix-draft-message-loss-on-restricted.md diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ComposeView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ComposeView.kt index 4c84965b9e..875bf6d263 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ComposeView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ComposeView.kt @@ -1308,13 +1308,6 @@ fun ComposeView( } } - LaunchedEffect(rememberUpdatedState(chat.chatInfo.sendMsgEnabled).value) { - if (!chat.chatInfo.sendMsgEnabled) { - clearCurrentDraft() - clearState() - } - } - KeyChangeEffect(chatModel.chatId.value) { prevChatId -> val cs = composeState.value if (cs.liveMessage != null && (cs.message.text.isNotEmpty() || cs.liveMessage.sent)) { @@ -1345,6 +1338,14 @@ fun ComposeView( chatModel.removeLiveDummy() CIFile.cachedRemoteFileRequests.clear() } + // Must be composed after KeyChangeEffect above (effects run in composition order), + // so that on chat switch the previous chat's draft is saved before it is cleared here. + LaunchedEffect(rememberUpdatedState(chat.chatInfo.sendMsgEnabled).value) { + if (!chat.chatInfo.sendMsgEnabled) { + clearCurrentDraft() + clearState() + } + } // keep the attach size limit in sync with the chat: the user's active badge raises it, but not in incognito chats where no badge is presented LaunchedEffect(chat.chatInfo) { val incognito = if (chat.chatInfo.profileChangeProhibited) chat.chatInfo.incognito else chatModel.controller.appPrefs.incognito.get() diff --git a/plans/2026-07-14-fix-draft-message-loss-on-restricted.md b/plans/2026-07-14-fix-draft-message-loss-on-restricted.md new file mode 100644 index 0000000000..f001e38f73 --- /dev/null +++ b/plans/2026-07-14-fix-draft-message-loss-on-restricted.md @@ -0,0 +1,67 @@ +# Fix draft loss when switching to a chat where user cannot send messages + +**Branch:** `nd/fix-draft-message-loss-on-restricted` · **PR:** [#7239](https://github.com/simplex-chat/simplex-chat/pull/7239) (draft) · **Commit:** `9d4bb2188` + +## Problem + +A draft typed in the current chat is lost when another chat is opened where the user +cannot send messages (observer, channel subscriber, review by admins). Reproduces on +desktop only: the chat list is always visible, so `chat` and `chatId` change in the +same recomposition (`CenterPartOfScreen` passes `ChatModel.chatId` itself as +`currentChatId`, App.kt:389). Android is unaffected — `AndroidScreen` updates +`currentChatId` via a `snapshotFlow` collector, so the draft-saving effect fires a +frame before the chat swaps. + +## Root cause + +In `ComposeView.kt`, the effect clearing compose state of a non-sendable chat +(`LaunchedEffect(sendMsgEnabled)`) was composed *before* the draft-saving +`KeyChangeEffect(chatModel.chatId)`. `LaunchedEffect` bodies run in composition +order, so on a same-recomposition switch the clear effect wiped the live compose +state before it could be saved, and `KeyChangeEffect` then fell into its +else-branch, destroying any previously saved draft via `clearPrevDraft` and deleting +attachment files. Present since the effect was introduced (`7b362ff65`, #5922) — +not a recent regression. + +## Fix + +Move the clearing effect after `KeyChangeEffect` (6 lines moved + 2-line comment). +The draft is saved first; `clearCurrentDraft()` is then a no-op for it because +`draftChatId` no longer matches the opened chat. Preserved behavior: the opened +chat's own draft is still cleared when it cannot send, and the draft is still +cleared when the open chat itself becomes non-sendable (only the `sendMsgEnabled` +key changes). Incidental improvements: an active live message is now sent on switch +instead of dropped, and the `inProgress` branch no longer resurrects cleared text. + +## Verification + +- Headless Compose-runtime harness (scratchpad `TmpDraftLossEffectOrderTest.kt` / + `TmpDraftFixVerifyTest.kt`): reproduced the bug (clear-before-save order observed), + verified the fix across 5 scenarios (switch to non-sendable, in-chat demotion, + non-sendable chat's own saved draft cleared, Android staggered path, sendable + control). All pass; `:common:desktopTest` and `:common:compileKotlinDesktop` green. +- Manual desktop repro confirmed the bug and fix. +- Works with `privacySaveLastDraft` off: text discarded per the setting's contract, + never saved; disabling purges the slot, so no stale-state interactions. + +## iOS + +Not reproduced on device (desktop repro path is safe on iOS: back-navigation fires +`ComposeView.onDisappear`, which saves the draft). A code-traced fix for in-place +chat switches (member info → "message", notification tap, "forwarded from" — where +`onDisappear` never runs) was removed from the PR and parked on +`nd/ios-draft-save-on-chat-switch` (commit `7b9b8d987`) pending device verification. +Decisive test: type a draft in a group → member info → "message" → back to group. +If the draft survives without the change, delete the side branch. + +## Pre-existing issues found (not addressed, both platforms) + +- Secondary (member support/reports) chat views share the group's chat id and race + the primary on the single draft slot (Kotlin: unguarded `KeyChangeEffect` in + secondary instances can clear the primary's just-saved draft when a modal is open + during a switch; iOS: secondary `onDisappear` saves under the swapped chat id). +- Kotlin: drafts are not saved when a chat is closed to `chatId = null` on desktop + (ChatView is disposed before `KeyChangeEffect` runs; only the forwarding case is + saved via `DisposableEffect`). +- Switching between two non-sendable chats restores the target's draft into the + disabled composer (clear effect does not re-fire on `false→false`). From 3615927db56e0c966e11cb652609d212ea76d24a Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Wed, 22 Jul 2026 07:35:41 +0000 Subject: [PATCH 06/22] multiplatform: remove unused clipboard state polling that froze desktop UI (#7237) The desktop app polled full clipboard contents every second on the AWT event thread to update ChatModel.clipboardHasText. On X11, each read blocks up to sun.awt.datatransfer.timeout (10s) when the selection owner does not respond (e.g. after KeePassXC's clipboard auto-clear), making every click/scroll wait ~9s. clipboardHasText has had no readers since its only consumer was removed in #4398, so the whole mechanism (desktop poll, Android clip listener, onResume refresh, expect/actual, state field) is deleted. See plans/2026-07-11-fix-desktop-clipboard-freeze.md. --- .../java/chat/simplex/app/MainActivity.kt | 14 ----- .../common/views/helpers/Utils.android.kt | 16 ----- .../kotlin/chat/simplex/common/App.kt | 1 - .../chat/simplex/common/model/ChatModel.kt | 1 - .../simplex/common/views/helpers/Utils.kt | 3 - .../common/views/helpers/Utils.desktop.kt | 15 ----- apps/multiplatform/spec/client/navigation.md | 3 +- apps/multiplatform/spec/state.md | 1 - ...2026-07-11-fix-desktop-clipboard-freeze.md | 61 +++++++++++++++++++ 9 files changed, 62 insertions(+), 53 deletions(-) create mode 100644 plans/2026-07-11-fix-desktop-clipboard-freeze.md diff --git a/apps/multiplatform/android/src/main/java/chat/simplex/app/MainActivity.kt b/apps/multiplatform/android/src/main/java/chat/simplex/app/MainActivity.kt index bacdfe70af..7415b6015d 100644 --- a/apps/multiplatform/android/src/main/java/chat/simplex/app/MainActivity.kt +++ b/apps/multiplatform/android/src/main/java/chat/simplex/app/MainActivity.kt @@ -1,6 +1,5 @@ package chat.simplex.app -import android.content.Context import android.content.Intent import android.net.Uri import android.os.* @@ -8,7 +7,6 @@ import android.view.View import android.view.WindowManager import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge -import androidx.compose.ui.platform.ClipboardManager import androidx.fragment.app.FragmentActivity import chat.simplex.app.model.NtfManager import chat.simplex.app.model.NtfManager.getUserIdFromIntent @@ -21,7 +19,6 @@ import chat.simplex.common.views.helpers.* import chat.simplex.common.views.onboarding.* import chat.simplex.common.platform.* import chat.simplex.res.MR -import kotlinx.coroutines.* import java.lang.ref.WeakReference class MainActivity: FragmentActivity() { @@ -73,17 +70,6 @@ class MainActivity: FragmentActivity() { override fun onResume() { super.onResume() AppLock.recheckAuthState() - withApi { - delay(1000) - if (!isAppOnForeground) return@withApi - /** - * When the app calls [ClipboardManager.shareText] and a user copies text in clipboard, Android denies - * access to clipboard because the app considered in background. - * This will ensure that the app will get the event on resume - * */ - val service = getSystemService(Context.CLIPBOARD_SERVICE) as android.content.ClipboardManager - chatModel.clipboardHasText.value = service.hasPrimaryClip() - } } override fun onPause() { diff --git a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/helpers/Utils.android.kt b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/helpers/Utils.android.kt index 5cf17d304d..c98f8f9f89 100644 --- a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/helpers/Utils.android.kt +++ b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/helpers/Utils.android.kt @@ -1,7 +1,5 @@ package chat.simplex.common.views.helpers -import android.content.ClipboardManager -import android.content.Context import android.content.res.Resources import android.graphics.* import android.graphics.Typeface @@ -14,7 +12,6 @@ import android.text.SpannedString import android.text.style.* import android.util.Base64 import android.view.WindowManager -import androidx.compose.runtime.* import androidx.compose.ui.graphics.* import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.* @@ -58,19 +55,6 @@ fun keepScreenOn(on: Boolean) { } } -@Composable -actual fun SetupClipboardListener() { - DisposableEffect(Unit) { - val service = androidAppContext.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager - val listener = { chatModel.clipboardHasText.value = service.hasPrimaryClip() } - chatModel.clipboardHasText.value = service.hasPrimaryClip() - service.addPrimaryClipChangedListener(listener) - onDispose { - service.removePrimaryClipChangedListener(listener) - } - } -} - actual fun escapedHtmlToAnnotatedString(text: String, density: Density): AnnotatedString { return spannableStringToAnnotatedString(HtmlCompat.fromHtml(text, HtmlCompat.FROM_HTML_MODE_LEGACY), density) } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/App.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/App.kt index 7542a0b8c6..cb91c386ce 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/App.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/App.kt @@ -163,7 +163,6 @@ fun MainScreen() { userPickerState.value = AnimatedViewState.VISIBLE } } - SetupClipboardListener() if (appPlatform.isAndroid) { AndroidWrapInCallLayout { AndroidScreen(userPickerState) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt index 284738fe14..58c455840e 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt @@ -210,7 +210,6 @@ object ChatModel { val filesToDelete = mutableSetOf() val simplexLinkMode by lazy { mutableStateOf(ChatController.appPrefs.simplexLinkMode.get()) } - val clipboardHasText = mutableStateOf(false) val networkInfo = mutableStateOf(UserNetworkInfo(networkType = UserNetworkType.OTHER, online = true)) val conditions = mutableStateOf(ServerOperatorConditionsDetail.empty) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/Utils.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/Utils.kt index eee97eeca9..70f4a1759b 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/Utils.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/Utils.kt @@ -110,9 +110,6 @@ fun annotatedStringResource(id: StringResource, vararg args: Any?): AnnotatedStr } } -@Composable -expect fun SetupClipboardListener() - // maximum image file size to be auto-accepted // Spec: spec/services/files.md#MAX_IMAGE_SIZE const val MAX_IMAGE_SIZE: Long = 261_120 // 255KB diff --git a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/helpers/Utils.desktop.kt b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/helpers/Utils.desktop.kt index 32b1d5cff0..3ccb915661 100644 --- a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/helpers/Utils.desktop.kt +++ b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/helpers/Utils.desktop.kt @@ -1,8 +1,6 @@ package chat.simplex.common.views.helpers -import androidx.compose.runtime.* import androidx.compose.ui.graphics.* -import androidx.compose.ui.platform.LocalClipboardManager import androidx.compose.ui.text.* import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.font.FontWeight @@ -12,7 +10,6 @@ import chat.simplex.common.model.CIFile import chat.simplex.common.model.readCryptoFile import chat.simplex.common.platform.* import chat.simplex.common.simplexWindowState -import kotlinx.coroutines.delay import java.awt.image.BufferedImage import java.io.ByteArrayInputStream import java.io.File @@ -119,18 +116,6 @@ actual fun escapedHtmlToAnnotatedString(text: String, density: Density): Annotat AnnotatedString(text) } -@Composable -actual fun SetupClipboardListener() { - val clipboard = LocalClipboardManager.current - chatModel.clipboardHasText.value = clipboard.hasText() - LaunchedEffect(Unit) { - while (true) { - delay(1000) - chatModel.clipboardHasText.value = clipboard.hasText() - } - } -} - actual fun getAppFileUri(fileName: String): URI { val rh = chatModel.currentRemoteHost.value return if (rh == null) { diff --git a/apps/multiplatform/spec/client/navigation.md b/apps/multiplatform/spec/client/navigation.md index c9939ea3c0..34a3b502ee 100644 --- a/apps/multiplatform/spec/client/navigation.md +++ b/apps/multiplatform/spec/client/navigation.md @@ -105,8 +105,7 @@ fun MainScreen() When onboarding is complete: 1. Shows "advertise lock" alert if conditions met (not shown before, LA not enabled, >3 chats, no active call). -2. Sets up clipboard listener. -3. Routes to `AndroidScreen` or `DesktopScreen` based on platform. +2. Routes to `AndroidScreen` or `DesktopScreen` based on platform. ### Overlay Layers (bottom of MainScreen) diff --git a/apps/multiplatform/spec/state.md b/apps/multiplatform/spec/state.md index 09457c4dd3..229c30d18e 100644 --- a/apps/multiplatform/spec/state.md +++ b/apps/multiplatform/spec/state.md @@ -155,7 +155,6 @@ Defined at [`ChatModel.kt line 86`](../common/src/commonMain/kotlin/chat/simplex | [`notificationPreviewMode`](../common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt#L147) | `MutableState` | 147 | Notification content preview level | | [`showAuthScreen`](../common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt#L156) | `MutableState` | 156 | Whether to show authentication screen | | [`showChatPreviews`](../common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt#L158) | `MutableState` | 158 | Whether to show chat preview text in list | -| [`clipboardHasText`](../common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt#L185) | `MutableState` | 185 | System clipboard has text content | | [`networkInfo`](../common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt#L186) | `MutableState` | 186 | Network type and online status | | [`conditions`](../common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt#L188) | `MutableState` | 188 | Server operator terms/conditions | | [`updatingProgress`](../common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt#L190) | `MutableState` | 190 | Progress indicator for app updates | diff --git a/plans/2026-07-11-fix-desktop-clipboard-freeze.md b/plans/2026-07-11-fix-desktop-clipboard-freeze.md new file mode 100644 index 0000000000..59d357446e --- /dev/null +++ b/plans/2026-07-11-fix-desktop-clipboard-freeze.md @@ -0,0 +1,61 @@ +# Fix desktop UI freeze caused by clipboard polling; remove dead `clipboardHasText` state + +## Problem + +User report: the Linux desktop app becomes extremely slow — every scroll or button press takes ~9 seconds. The lag disappears while the clipboard is filled and returns when it is emptied, reproducibly triggered by KeePassXC's clipboard auto-clear (10s safety timeout). Manual clearing via desktop tools does not trigger it. + +## Root cause + +`SetupClipboardListener()` (desktop actual, `common/src/desktopMain/kotlin/chat/simplex/common/views/helpers/Utils.desktop.kt`) ran `chatModel.clipboardHasText.value = clipboard.hasText()` once at composition and then every 1 second in a `LaunchedEffect` — i.e. on the Compose main dispatcher, which on desktop is the AWT Event Dispatch Thread that processes all input and rendering. + +The call chain of `hasText()` (verified in Compose 1.8.2 / skiko 0.9.4 bytecode): + +``` +PlatformClipboardManager.hasText() + → org.jetbrains.skiko.ClipboardManager_hasText() + → ClipboardManager_getText() + → java.awt.datatransfer.Clipboard.getData(DataFlavor.stringFlavor) +``` + +So "does the clipboard have text" was answered by fetching the full clipboard contents over an X11 selection conversion, every second. On X11, `getData` blocks in `sun.awt.X11.XSelection.waitForSelectionNotify()` until the selection owner replies or `sun.awt.datatransfer.timeout` expires — **default 10 000 ms** (OpenJDK `UNIXToolkit.getDatatransferTimeout()`). + +When the X11 CLIPBOARD selection owner does not answer conversion requests — the state KeePassXC's auto-clear leaves behind — each poll blocked the EDT for the full 10 s, then the loop slept 1 s and blocked again. The EDT was therefore blocked ~10 of every ~11 seconds; a random click or scroll waited ~9 s on average, exactly as reported. Any responsive clipboard owner (any normal app copying text) made the polls instant again, which is why filling the clipboard "cured" it. + +## Why deletion (not a workaround) is correct + +`chatModel.clipboardHasText` has had **zero readers since July 2024**: its only ever consumer — a conditional paste icon over the chat list search field — was removed in #4398 (commit `3e623684b`). Everything else was write-only plumbing for that state: + +- desktop 1s poll (`Utils.desktop.kt`) — the freeze source; +- Android `addPrimaryClipChangedListener` (`Utils.android.kt`, added in #3529); +- Android `onResume` re-read of `hasPrimaryClip()` (`MainActivity.kt`, #3758) — a workaround for Android 10+ denying clipboard access to backgrounded apps, needed only to keep the state fresh for that same paste icon; +- the `expect`/`actual` declarations and the `App.kt` call site; +- the `ChatModel.clipboardHasText` field itself. + +Verified before removal: + +- No direct reads anywhere in the repo (all source sets, all modules), on any remote branch, and none in any upstream PR (GitHub code search: only the writers + one spec table row). +- No indirect access: no reflection over `ChatModel`, no `"clipboardHasText"` string literal, no wholesale snapshot observation, no serialization (`ChatModel` is `@Stable`, not `@Serializable`), nothing crosses the mobile↔desktop remote protocol, no Gradle/lint/ProGuard/codegen references, no tests. +- Removing the `App.kt` call cannot affect sibling composition: the composable emits no UI node (Android: bare `DisposableEffect`; desktop: state writes only), and there is no `key()`/`movableContentOf`/positional logic nearby. +- Android side effects: none. `hasPrimaryClip()` does not read clip contents (no Android 12+ access toast); this was the only primary-clip listener (no ordering concerns); the `onResume` coroutine `Job` was never captured or awaited. +- All remaining paste features are unaffected because they read the clipboard directly at the moment of user action, not via this state: "tap to paste link" (`NewChatView.kt`), Ctrl+V in the composer (`PlatformTextField.desktop.kt`), "paste desktop address" (`ConnectDesktopView.kt`), migration link paste (`MigrateToDevice.kt`). + +After this change the desktop app touches the X11 clipboard only on explicit user paste, so no background clipboard state can stall the UI. (A paste attempt while the selection owner is unresponsive can still block once, up to the AWT timeout — inherent to AWT's synchronous X11 clipboard, out of scope.) + +## Change + +Delete the dead mechanism end to end: + +- `common/src/commonMain/kotlin/chat/simplex/common/views/helpers/Utils.kt` — `expect fun SetupClipboardListener()` +- `common/src/desktopMain/kotlin/chat/simplex/common/views/helpers/Utils.desktop.kt` — desktop actual (the polling loop) + unused imports +- `common/src/androidMain/kotlin/chat/simplex/common/views/helpers/Utils.android.kt` — Android actual (clip listener) + unused imports +- `common/src/commonMain/kotlin/chat/simplex/common/App.kt` — call site +- `common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt` — `clipboardHasText` field +- `android/src/main/java/chat/simplex/app/MainActivity.kt` — `onResume` clipboard block + unused imports +- `spec/state.md` — stale table row +- `spec/client/navigation.md` — stale "sets up clipboard listener" step in the MainScreen description + +## Verification + +- `:common:compileKotlinDesktop`, `:common:compileReleaseKotlinAndroid`, `:android:compileReleaseKotlin` pass. +- Repo-wide grep for `clipboardHasText`/`SetupClipboardListener` returns no references outside this document. +- Linux AppImage and Android APK built from this branch. From 5a380a751faf946c7b5f8d46fc88abaebc3a0c9c Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Wed, 22 Jul 2026 07:43:35 +0000 Subject: [PATCH 07/22] desktop: fix hand cursor over clickable commands; fix command clicks lost on quick successive clicks (#7249) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * desktop: fix pointer cursor not changing to hand over clickable commands (dropped hover events) * desktop: set hover cursor directly on every hover move; compose pointerHoverIcon is edge-triggered and loses updates when chat items shift under the cursor * plans: investigation and justification for command hover cursor fix * desktop: harden hover cursor fix after adversarial review: refresh on release, ignore button-held events, reset icon state on exit, cache canvas lookup failures * desktop: document two-stage verification, exit icon asymmetry and cache guard rationale in hover cursor fix * plans: reconcile performance and testing claims with hardened code * plans: correct recomposition count and note commit subject scoping * plans: clarify user-facing problem description * desktop: shorten comments in hover cursor fix * desktop: clarify comments in hover cursor fix * multiplatform: fix command clicks lost on quick successive clicks (serialize gesture press scope, don't restart pointerInput on recomposition) * plans: document lost-click defect (press-scope race, pointerInput restart) and fixes * multiplatform: don't cancel command click when chat list shifts under the pointer A press is cancelled when it goes out of the node's bounds, but when a sent message inserts into the chat the node moves out from under a stationary pointer, which is not a drag-away. Exempt out-of-bounds cancellation when the pointer did not move in window coordinates (within touch slop). * multiplatform: stop pointer handler resets on chat item recomposition (lost clicks, cursor flicker) bigTouchSlop() created a new ViewConfiguration instance on every recomposition of every chat item; pointer input nodes observe ViewConfiguration and reset their handler when it changes, so each inserted message killed all in-flight presses (lost command clicks) and hover handlers (hand cursor flicker) in the viewport. Provide a remembered instance instead. * plans: document list-shift press cancellation and ViewConfiguration reset defects * desktop: remove imperative hover cursor workaround, superseded by ViewConfiguration fix The evidence that the declarative path was insufficient was gathered while every message insertion was resetting all hover handlers (the ViewConfiguration identity defect, fixed in 6d24bd5d4) — which alone explains those failures. With handlers stable, the full hover matrix passes on pointerHoverIcon plus the lossless detectCursorMove alone, so the AWT canvas write and its expect/actuals are removed; only the icon state reset on Exit remains. * plans: document hover workaround removal and stage-1 evidence contamination --- .../simplex/common/views/chat/ChatView.kt | 7 +- .../common/views/chat/item/TextItemView.kt | 44 ++-- .../common/views/helpers/GestureDetector.kt | 61 +++-- plans/2026-07-13-fix-command-hover-cursor.md | 240 ++++++++++++++++++ 4 files changed, 318 insertions(+), 34 deletions(-) create mode 100644 plans/2026-07-13-fix-command-hover-cursor.md diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt index e762c5610d..ea7d96059d 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt @@ -1909,10 +1909,13 @@ fun BoxScope.ChatItemsList( reveal: (Boolean) -> Unit ) { val itemScope = rememberCoroutineScope() + val viewConfiguration = LocalViewConfiguration.current CompositionLocalProvider( // Makes horizontal and vertical scrolling to coexist nicely. - // With default touchSlop when you scroll LazyColumn, you can unintentionally open reply view - LocalViewConfiguration provides LocalViewConfiguration.current.bigTouchSlop() + // With default touchSlop when you scroll LazyColumn, you can unintentionally open reply view. + // remember: pointerInput handlers observe ViewConfiguration and reset on any change, so a new + // instance per recomposition kills in-flight presses/hover whenever a message is inserted + LocalViewConfiguration provides remember(viewConfiguration) { viewConfiguration.bigTouchSlop() } ) { val provider = { providerForGallery(reversedChatItems.value.asReversed(), cItem.id) { indexInReversed -> diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/TextItemView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/TextItemView.kt index 9d952eb10f..7e66c15937 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/TextItemView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/TextItemView.kt @@ -12,8 +12,10 @@ import androidx.compose.runtime.* import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawBehind +import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.pointer.* +import androidx.compose.ui.layout.* import androidx.compose.ui.platform.* import androidx.compose.ui.text.* import androidx.compose.ui.text.AnnotatedString.Range @@ -394,12 +396,12 @@ fun MarkdownText ( }, onHover = { offset -> val hasAnnotation: (String) -> Boolean = { tag -> annotatedText.hasStringAnnotations(tag, start = offset, end = offset) } - icon.value = - if (hasAnnotation("WEB_URL") || hasAnnotation("SIMPLEX_URL") || hasAnnotation("OTHER_URL") || hasAnnotation("SIMPLEX_NAME") || hasAnnotation("SECRET") || hasAnnotation("COMMAND") || hasAnnotation("MODAL")) { - PointerIcon.Hand - } else { - PointerIcon.Text - } + val hand = hasAnnotation("WEB_URL") || hasAnnotation("SIMPLEX_URL") || hasAnnotation("OTHER_URL") || hasAnnotation("SIMPLEX_NAME") || hasAnnotation("SECRET") || hasAnnotation("COMMAND") || hasAnnotation("MODAL") + icon.value = if (hand) PointerIcon.Hand else PointerIcon.Text + }, + onHoverExit = { + // reset icon.value too, or pointerHoverIcon re-displays a stale Hand on the next Enter + icon.value = PointerIcon.Text }, shouldConsumeEvent = { offset -> annotatedText.hasStringAnnotations(tag = "WEB_URL", start = offset, end = offset) @@ -433,34 +435,45 @@ fun ClickableText( onClick: (Int) -> Unit, onLongClick: (Int) -> Unit = {}, onHover: (Int) -> Unit = {}, + onHoverExit: () -> Unit = {}, shouldConsumeEvent: (Int) -> Boolean ) { val layoutResult = remember { mutableStateOf(null) } - val pressIndicator = Modifier.pointerInput(onClick, onLongClick) { + // pointerInput keyed on these lambdas restarts on every recomposition (they are new + // instances each time), and a restart mid-gesture swallows the click/hover in flight; + // key on Unit and read the latest handlers via rememberUpdatedState instead + val currentOnClick = rememberUpdatedState(onClick) + val currentOnLongClick = rememberUpdatedState(onLongClick) + val currentOnHover = rememberUpdatedState(onHover) + val currentOnHoverExit = rememberUpdatedState(onHoverExit) + val currentShouldConsumeEvent = rememberUpdatedState(shouldConsumeEvent) + // to tell a moved pointer from text that shifted under a stationary pointer (see waitForUpOrCancellation) + val textCoordinates = remember { mutableStateOf(null) } + val pressIndicator = Modifier.pointerInput(Unit) { detectGesture(onLongPress = { pos -> layoutResult.value?.let { layoutResult -> - onLongClick(layoutResult.getOffsetForPosition(pos)) + currentOnLongClick.value(layoutResult.getOffsetForPosition(pos)) } }, onPress = { pos -> layoutResult.value?.let { layoutResult -> val res = tryAwaitRelease() if (res) { - onClick(layoutResult.getOffsetForPosition(pos)) + currentOnClick.value(layoutResult.getOffsetForPosition(pos)) } } - }, shouldConsumeEvent = { pos -> + }, positionInWindow = { textCoordinates.value?.positionInWindow() ?: Offset.Zero }, shouldConsumeEvent = { pos -> var consume = false layoutResult.value?.let { layoutResult -> - consume = shouldConsumeEvent(layoutResult.getOffsetForPosition(pos)) + consume = currentShouldConsumeEvent.value(layoutResult.getOffsetForPosition(pos)) } consume } ) - }.pointerInput(onHover) { + }.pointerInput(Unit) { if (appPlatform.isDesktop) { - detectCursorMove { pos -> + detectCursorMove(onExit = { currentOnHoverExit.value() }) { pos -> layoutResult.value?.let { layoutResult -> - onHover(layoutResult.getOffsetForPosition(pos)) + currentOnHover.value(layoutResult.getOffsetForPosition(pos)) } } } @@ -468,7 +481,8 @@ fun ClickableText( BasicText( text = text, - modifier = modifier.then(selectionHighlight(selectionRange, text.length, layoutResult)).then(pressIndicator), + modifier = modifier.then(selectionHighlight(selectionRange, text.length, layoutResult)).then(pressIndicator) + .onGloballyPositioned { textCoordinates.value = it }, style = style, softWrap = softWrap, overflow = overflow, diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/GestureDetector.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/GestureDetector.kt index 9252e8b032..d55f894491 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/GestureDetector.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/GestureDetector.kt @@ -46,6 +46,7 @@ private val NoPressGesture: suspend PressGestureScope.(Offset) -> Unit = { } suspend fun PointerInputScope.detectGesture( onLongPress: ((Offset) -> Unit)? = null, onPress: suspend PressGestureScope.(Offset) -> Unit = NoPressGesture, + positionInWindow: (() -> Offset)? = null, shouldConsumeEvent: (Offset) -> Boolean ) = coroutineScope { val pressScope = PressGestureScopeImpl(this@detectGesture) @@ -57,8 +58,14 @@ suspend fun PointerInputScope.detectGesture( val shouldConsume = shouldConsumeEvent(down.position) if (shouldConsume) down.consumeDownChange() - pressScope.reset() + val downPositionInWindow = positionInWindow?.let { it() + down.position } + // reset() suspends until the previous gesture's press handler released the mutex, + // and release/cancel join resetJob, so flag writes can't be reordered across gestures + // (a fast second click would otherwise drop the first click's onClick). + // Mirrors detectTapGestures in Compose 1.8.2. + val resetJob = launch { pressScope.reset() } if (onPress !== NoPressGesture) launch { + resetJob.join() pressScope.onPress(down.position) } val longPressTimeout = onLongPress?.let { @@ -67,37 +74,45 @@ suspend fun PointerInputScope.detectGesture( try { val upOrCancel: PointerInputChange? = withTimeout(longPressTimeout) { - waitForUpOrCancellation() + waitForUpOrCancellation(downPositionInWindow, positionInWindow) } if (upOrCancel == null) { - pressScope.cancel() + launch { resetJob.join(); pressScope.cancel() } } else { if (shouldConsume) upOrCancel.consumeDownChange() - pressScope.release() + launch { resetJob.join(); pressScope.release() } } } catch (_: PointerEventTimeoutCancellationException) { if (onLongPress != null) { onLongPress(down.position) if (shouldConsume) consumeUntilUp() - pressScope.cancel() + launch { resetJob.join(); pressScope.cancel() } } else { if (shouldConsume) consumeUntilUp() - pressScope.release() + launch { resetJob.join(); pressScope.release() } } } } } } -suspend fun PointerInputScope.detectCursorMove(onMove: (Offset) -> Unit = {},) = coroutineScope { - forEachGesture { - awaitPointerEventScope { +suspend fun PointerInputScope.detectCursorMove(onExit: () -> Unit = {}, onMove: (Offset) -> Unit = {},) { + // One scope for all events: re-entering awaitPointerEventScope per event loses events. + // Enter/Release update hover when the pointer is stationary (content moved under it, or a click completed). + awaitPointerEventScope { + while (true) { val event = awaitPointerEvent() - if (event.type == PointerEventType.Move) { - onMove(event.changes[0].position) + if (event.type == PointerEventType.Move || event.type == PointerEventType.Enter || event.type == PointerEventType.Release) { + val pos = event.changes[0].position + // ignore events while a button is down or outside bounds: a pressed node receives them even after the pointer leaves it + if (event.changes.none { it.pressed } && pos.x >= 0 && pos.y >= 0 && pos.x < size.width && pos.y < size.height) { + onMove(pos) + } + } else if (event.type == PointerEventType.Exit) { + onExit() } } } @@ -130,7 +145,16 @@ internal suspend fun AwaitPointerEventScope.awaitFirstDownOnPass( return event.changes[0] } -suspend fun AwaitPointerEventScope.waitForUpOrCancellation(): PointerInputChange? { +suspend fun AwaitPointerEventScope.waitForUpOrCancellation( + downPositionInWindow: Offset? = null, + positionInWindow: (() -> Offset)? = null +): PointerInputChange? { + // out of bounds in local coordinates while stationary in window coordinates is the node + // moving under the pointer (chat list shifted after a sent message), not the pointer + // leaving the node — such a press stays valid + fun stationaryInWindow(change: PointerInputChange): Boolean = + downPositionInWindow != null && positionInWindow != null && + (positionInWindow() + change.position - downPositionInWindow).getDistance() <= viewConfiguration.touchSlop while (true) { val event = awaitPointerEvent(PointerEventPass.Main) if (event.changes.all { it.changedToUp() }) { @@ -138,7 +162,7 @@ suspend fun AwaitPointerEventScope.waitForUpOrCancellation(): PointerInputChange } if (event.changes.any { - it.consumed.downChange || it.isOutOfBounds(size, extendedTouchPadding) + it.consumed.downChange || (it.isOutOfBounds(size, extendedTouchPadding) && !stationaryInWindow(it)) } ) { return null @@ -159,16 +183,18 @@ private class PressGestureScopeImpl( fun cancel() { isCanceled = true - mutex.unlock() + if (mutex.isLocked) mutex.unlock() } fun release() { isReleased = true - mutex.unlock() + if (mutex.isLocked) mutex.unlock() } - fun reset() { - mutex.tryLock() + // suspends until the previous gesture's tryAwaitRelease finished (or was never started): + // the mutex is the serialization token between consecutive gestures + suspend fun reset() { + mutex.lock() isReleased = false isCanceled = false } @@ -176,6 +202,7 @@ private class PressGestureScopeImpl( override suspend fun tryAwaitRelease(): Boolean { if (!isReleased && !isCanceled) { mutex.lock() + mutex.unlock() } return isReleased && !isCanceled } diff --git a/plans/2026-07-13-fix-command-hover-cursor.md b/plans/2026-07-13-fix-command-hover-cursor.md new file mode 100644 index 0000000000..6f96abeee6 --- /dev/null +++ b/plans/2026-07-13-fix-command-hover-cursor.md @@ -0,0 +1,240 @@ +# Fix: hand cursor not appearing over clickable commands (desktop) + +## Problem + +On desktop, the mouse cursor should change to a hand over clickable commands in chat messages +(e.g. `/join 143556` in a bot's menu of commands) — the hand is what tells the user the command +can be clicked. This did not work reliably: hovering a command sometimes left the text/arrow +cursor in place, giving no indication that the command is clickable. It usually worked, but failed +intermittently — most often when clicking many commands in a row in a chat, because every click +inserts the sent message and shifts the list under the pointer — and once wrong, the cursor stayed +wrong even while moving within the same message; it only recovered after leaving the message text +and re-entering it. The same mechanism affects all clickable elements in message text (links, +simplex addresses, secrets), but command menus made it most visible. + +A second user-visible problem surfaced while testing this fix: a click on a command was sometimes +not registered at all when clicking two commands (e.g. two `/join`s) in short succession. That is +defect 3 below — two independent mechanisms in the click path, unrelated to the cursor layers. + +## Investigation + +The cursor is driven by two cooperating layers in `ClickableText` (TextItemView.kt): + +1. **Detection** — `Modifier.pointerInput { detectCursorMove { ... } }` maps the pointer position to + a character offset and checks for `COMMAND`/link annotations, storing `PointerIcon.Hand` or + `PointerIcon.Text` in per-item state (`onHover`). +2. **Display** — `Modifier.pointerHoverIcon(icon.value)` tells Compose which cursor to show. + +Both layers were traced against the Compose Multiplatform 1.8.2 sources (`ui-desktop`, +`foundation-desktop`). + +### Defect 1: detection layer lost events (commit "fix pointer cursor not changing to hand…") + +`detectCursorMove` (GestureDetector.kt) processed **one pointer event per +`awaitPointerEventScope` block**, exiting and re-entering the scope through `forEachGesture` for +every event. `forEachGesture` is deprecated in this exact Compose version with the message *"Use +awaitEachGesture instead. forEachGesture() can drop events between gestures."* — so the final Move +event, the one that should switch the cursor when the pointer comes to rest on a command, could be +silently dropped. It also ignored `Enter` events entirely, so when the chat list shifted under a +stationary cursor (every command click appends the sent message), the newly hovered item — which +receives `Enter`, not `Move` — never updated the icon state. + +**Fix:** one never-exiting `awaitPointerEventScope` loop reacting to `Move`, `Enter` and `Release` +(plus an optional `onExit` callback used by the cursor fix below). `Release` refreshes hover at +the final pointer position — after clicking a command the list shifts and the release is the only +event a stationary pointer gets. Button-held events are ignored (gated on *no* pointer pressed, +matching the old `forEachGesture` semantics which waited for all pointers up between events), and +so are out-of-bounds positions: while a button is pressed the hit path is locked, so the pressed +node keeps receiving events after the pointer leaves it — acting on those would apply hover +effects at clamped positions (e.g. a wrong cursor stuck after drag-releasing outside the text). +The other `detectCursorMove` call sites (scrollbar reveal in `ScrollableColumn.desktop.kt` and +`OperatorView.desktop.kt`) were audited: reacting to `Enter`/`Release` there is harmless or an +improvement, and `onExit` defaults to a no-op for them. + +### Defect 2: display layer silently swallows updates (commit "set hover cursor directly…") + +This made hovering reliable but the cursor could still get stuck, because Compose's +`pointerHoverIcon` display side is edge-triggered with several silent-drop guards +(all confirmed in the CMP 1.8.2 sources): + +- `HoverIconModifierNode` acts only on per-node `Enter`/`Exit` events (`PointerIcon.kt:253-259`); + Move events never refresh the displayed cursor. +- Its `icon` setter displays only if the value *changed* **and** the node is marked in-bounds + (`PointerIcon.kt:213-221`) — re-asserting the same value, or changing it while the node believes + the cursor is outside, is silently dropped. +- `setIcon` writes the AWT cursor immediately, last-write-wins, with no later reconciliation + (`RootNodeOwner.skiko.kt:738-744`); `onDetach`/`onCancelPointerInput` reset it to default from + recomposition, outside pointer dispatch (`PointerIcon.kt:278-288`). +- Whether a node gets `Enter` depends on `hasEntered` state stored separately in + `HitPathTracker.Node` (`HitPathTracker.kt:582-594`); confirmed windows exist where the two + desync (detach between `buildCache` and dispatch; `cleanUpHover` clearing `isIn` without + dispatching; Press/Release never remapping to Enter). Once desynced, the node receives only + Moves — which it ignores — so the hand can never be displayed again until the pointer physically + leaves and re-enters the text. +- Recovery after content shifts under a stationary cursor depends entirely on the synthetic Move + (`SyntheticEventSender`), which is skipped whenever the sender was reset or + `needUpdatePointerPosition` was not set for that frame. + +Clicking many commands maximizes exposure: each click inserts a message → recomposition burst + +list shift + (for `/join`) group-state changes — each transition can hit one of these edges. +Related upstream issues: JetBrains/compose-multiplatform #2091, #1314, #3750. + +**Fix (initial):** in `onHover` — which now fires reliably on every Move/Enter/Release over the +text — set the AWT cursor imperatively on desktop (`desktopSetHoverCursor`, writing to the same +Skia canvas component Compose writes to), and symmetrically reset both the cursor and the `icon` +state on the per-node `Exit` event. + +**Removed after defect 5 was fixed at the root.** The empirical justification for the imperative +layer (stage 1 under Testing) was contaminated: that test ran while defect 5 was live, i.e. while +every message insertion reset every hover handler in the viewport — which alone explains the +observed failure (a reset suspending handler restarts only on the next pointer event, leaving a +stationary cursor blind after every click). With defects 1 and 5 fixed, the full hover matrix +(rapid stationary-mouse command clicks, list shifting under a hovered pointer, fast sweeps across +commands/links/text, press-drag-out-release-re-enter, wheel-scroll over commands) passes without +the imperative layer, so it was deleted; `Modifier.kt`/`Modifier.desktop.kt`/`Modifier.android.kt` +are untouched by this PR again. What remains of this defect's fix is the `icon.value = Text` reset +on `Exit` in `MarkdownText` — without it, `pointerHoverIcon` re-displays a stale Hand on the next +Enter. The display-layer edges documented above are real in the sources, but with stable handlers +they are not practically reachable in these scenarios. + +### Residual limitation (known, strictly smaller than the fixed bug) + +If a hovered clickable text leaves the composition without the pointer ever getting an `Exit` +event (e.g. the hovered message is deleted, or a fast fling disposes the item within a frame), the +`onExit` reset does not run — the coroutine is simply cancelled. The retained `pointerHoverIcon` +modifier's `onDetach` reset covers this when its node is in the normal (non-desynced) state; in the +rare desynced state the cursor may stay a hand until the next hover write. This is the same event +class the fix reduces, bounded to one stale frame region, and self-corrects on any subsequent +hover. + +### Defect 3: command clicks intermittently lost (commit "multiplatform: fix command clicks lost on quick successive clicks") + +Clicking two commands in short succession sometimes lost a click. Two independent mechanisms, +each reproduced in an isolated harness before fixing and re-verified fixed with the same harness: + +1. **Press-scope race in `detectGesture`** (GestureDetector.kt — a 2022 copy of + `detectTapGestures` predating upstream's hardening; the file has not been resynced since). + The single `PressGestureScopeImpl` is shared across gestures, and its methods run in two + different lanes of the UI thread: `reset()`/`release()` synchronously inside pointer-event + dispatch, while the `onPress` handler (which awaits release, then calls `onClick`) runs in a + launched coroutine resumed through the dispatcher queue. With the old non-suspending + `reset()` (`mutex.tryLock()`), two fast clicks interleave as: up₁ `release()` sets + `isReleased` and unlocks — the first click's `tryAwaitRelease` resumption is only *queued* — + then down₂ `reset()` clears `isReleased` synchronously, so the queued resumption reads + `false` and the first click's `onClick` never fires. Reproduced deterministically in a + single-threaded coroutine harness replaying this ordering (`click1=false click2=true`). + + **Fix:** mirror the `detectTapGestures` serialization from Compose 1.8.2 (`foundation` + `TapGestureDetector.kt`): `reset()` is `suspend` and takes the mutex, so a new gesture cannot + clear the flags until the previous gesture's press handler finished; `release()`/`cancel()` + unlock guardedly (`if (mutex.isLocked)`) and are launched joining the reset job, so flag + writes cannot be reordered across gestures; `tryAwaitRelease()` releases the mutex after + acquiring it, which is what lets the next `reset()` proceed. The mutex becomes a + serialization token between consecutive gestures. `detectGesture` also runs for Android + touch, so the same quick-tap loss is fixed there. + +2. **`pointerInput` restart swallowing an in-flight click** (TextItemView.kt). `ClickableText` + keyed `pointerInput(onClick, onLongClick)` on lambdas that are new instances every + recomposition, so any recomposition of the message restarted the gesture coroutine and + destroyed a gesture in flight: the cancelled `onPress` never resumes, and the restarted + detector waits for a fresh down that never comes for the press already held. Clicking + command 1 sends a message whose insertion recomposes the item 50–300 ms later — exactly when + the second click tends to be pressed. Reproduced in a headless `ImageComposeScene` driving + the verbatim repo gesture code with synthetic pointer events: press → recomposition applies → + release lost the click, while control clicks on either side registered. + + **Fix:** key both `pointerInput` blocks on `Unit` and read the latest handlers through + `rememberUpdatedState` (the standard idiom for long-lived event coroutines). This also stops + recompositions from cancelling `detectCursorMove` mid-stream — the same event-loss class as + defect 1 — and gives all `ClickableText` callers latest-capture semantics for + `annotatedText` (previously the handlers could act on a stale capture until the restart). + +A theoretical residue remains: if three gestures' pointer events were all processed before the +dispatcher ran any of the second gesture's jobs, flags could still mispair. This exposure is +structurally identical in upstream Compose 1.8.2 (`launchAwaitingReset` joins only its own +gesture's reset job), is not reachable by human input, and fixing it would diverge from the +mirrored upstream — left as upstream parity. + +### Defect 4: press cancelled when the list shifts under the pointer (commit "multiplatform: don't cancel command click when chat list shifts under the pointer") + +Clicks were still lost after defect 3's fixes. `waitForUpOrCancellation` cancels a press when an +event's position is out of the node's bounds — correct for a pointer dragged away, wrong when the +*node* moved out from under a stationary pointer, which is exactly what happens when the sent +command's message inserts and shifts the list during the press. In node-local coordinates the two +cases are numerically identical; reproduced in a headless harness (60px shift under a held +pointer → synthetic `Exit` at out-of-bounds local position → press cancelled). + +**Fix:** the two cases separate in window coordinates. `ClickableText` tracks its +`LayoutCoordinates` (`onGloballyPositioned`) and passes a window-position lambda into +`detectGesture`; `waitForUpOrCancellation` exempts the out-of-bounds cancel when the pointer moved +≤ `touchSlop` in window space since the down. Real drag-aways (> slop) cancel as before; both +parameters default to null, reducing the check literally to the old expression for other callers. + +### Defect 5: every message insertion reset all pointer handlers (commit "multiplatform: stop pointer handler resets on chat item recomposition…") + +The dominant residual mechanism, found by instrumenting handler lifecycle: every insertion +produced a burst of gesture-handler cancellations for all visible clickable messages — with the +composables *not* disposed and the handler restarting on the *same* node. A press in flight during +such a burst died silently (`down` with no release/cancel), needing a second click; the hover +handler reset the same way, causing the residual hand-cursor flicker. + +Cause: `ChatViewListItem` provided `LocalViewConfiguration.current.bigTouchSlop()` — a **new +anonymous `ViewConfiguration` instance on every recomposition** of every item, and +`SuspendingPointerInputModifierNodeImpl.onViewConfigurationChange()` is +`resetPointerInputHandler()` (verified in the 1.8.2 sources). Insertions recompose all visible +items (shifting `index`), so each insertion reset every pointer handler in the viewport. + +**Fix:** provide a remembered instance — `remember(viewConfiguration) { +viewConfiguration.bigTouchSlop() }` — keyed on the parent `ViewConfiguration` so a real platform +change still regenerates it. Values are unchanged (the wrapper delegates); only the identity that +the reset machinery reacts to is stabilized. Verified in a harness: a press held across a +recomposition dies with the per-recomposition instance and survives with the remembered one. + +## Performance + +- `detectCursorMove` is now cheaper per event than before (no scope teardown/re-entry per event); + the pressed check allocates one list iterator per event. +- Up to two added recompositions per exit/re-enter cycle of a Hand region (the exit reset writes + `icon.value` Hand→Text, making the next re-enter a Text→Hand write where pre-fix both were + no-ops); otherwise the icon state logic is unchanged. Android is a no-op. +- The defect 3 fix launches two extra short-lived coroutines per gesture (reset job, release/cancel + job) — negligible at click rate. Not restarting `pointerInput` on every recomposition removes + per-recomposition coroutine churn that existed before. + +Framework line numbers cited above are from the official `ui-desktop-1.8.2`/`foundation-desktop-1.8.2` +sources jars on Maven Central; they will drift on upgrade. + +## Testing + +Verified on Linux (AppImage), in two stages (commit subjects name the defect layer each commit +fixes; the user-visible symptom needed both layers, per stage 1 below): + +1. A build with only the detection-layer fix (lossless `detectCursorMove`) was tested first and + the stale-cursor symptom **still reproduced** — this is the empirical justification for the + imperative display-layer workaround; the declarative-only fix is not sufficient. +2. With both layers (pre-hardening build, commit `df6b0655d`): hovering commands after clicking + several in a row, clicking stacked `/join` commands without moving the mouse, and sweeping + across commands quickly — the hand cursor tracks correctly in all cases. + +The later hardening commits (release refresh, pressed/bounds gating, exit resets, canvas cache) +are verified by compilation on both targets and multi-pass adversarial review; runtime +re-verification of the final build is pending. + +Defect 3 is verified by the two isolated repro harnesses described above (both mechanisms +reproduced pre-fix, both register every click post-fix — including a click held across a +recomposition and two fast clicks back-to-back through real Compose event dispatch in +`ImageComposeScene`), by compilation, and by multi-pass adversarial review (two clean passes +pre-commit, two post-commit). + +Stage 1's conclusion is retroactively invalidated by defect 5 (see defect 2's removal note): the +"detection fix alone is insufficient" evidence was gathered while insertions were resetting the +detection handler itself. After defect 5's fix, the imperative workaround was removed and the +hover scenarios re-verified passing on the framework path alone. + +Defects 4 and 5 were isolated with four rounds of temporary instrumentation in the real app +(logging every gesture exit path, composable disposal, and handler/node identity — removed before +commit), each mechanism reproduced and its fix verified in a headless harness, reviewed through +two clean adversarial passes, and confirmed fixed by runtime testing on Linux: fast successive +command clicks all register, and the residual hand-cursor flicker on message insertion is gone. +Known unfixable-at-this-layer residue: a click that lands where a command *was* before the list +shifted (pre-press shift — an aiming race, not an event-handling defect). From a61331639e204e3d8bd3b947614f61ffbb199a35 Mon Sep 17 00:00:00 2001 From: sh <37271604+shumvgolove@users.noreply.github.com> Date: Wed, 22 Jul 2026 12:57:49 +0400 Subject: [PATCH 08/22] ios: fix broken string in zh-Hant.xliff (#7282) --- .../zh-Hant.xcloc/Localized Contents/zh-Hant.xliff | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/ios/SimpleX Localizations/zh-Hant.xcloc/Localized Contents/zh-Hant.xliff b/apps/ios/SimpleX Localizations/zh-Hant.xcloc/Localized Contents/zh-Hant.xliff index 92580c1f4f..168d865b4b 100644 --- a/apps/ios/SimpleX Localizations/zh-Hant.xcloc/Localized Contents/zh-Hant.xliff +++ b/apps/ios/SimpleX Localizations/zh-Hant.xcloc/Localized Contents/zh-Hant.xliff @@ -10653,8 +10653,8 @@ More improvements are coming soon! Owner 擁有者 - - Owners< & contributors + + Owners & contributors 擁有者 From 4483957ca01a2a85a9901dd4675045b190e52116 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Wed, 22 Jul 2026 12:08:13 +0100 Subject: [PATCH 09/22] 7.0.0.10 --- simplex-chat.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simplex-chat.cabal b/simplex-chat.cabal index f410089bff..6e82981f48 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -5,7 +5,7 @@ cabal-version: 1.12 -- see: https://github.com/sol/hpack name: simplex-chat -version: 7.0.0.9 +version: 7.0.0.10 category: Web, System, Services, Cryptography homepage: https://github.com/simplex-chat/simplex-chat#readme author: simplex.chat From ab691a4f82e4718bc2ea8f2f1295c6b6af9a0674 Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Wed, 22 Jul 2026 12:11:06 +0000 Subject: [PATCH 10/22] android, desktop: remove stray card dividers in server info, connect-to-desktop, appearance and migration screens (#7118) * android, desktop: remove stray card dividers in server info, connect-to-desktop, appearance and migration screens PR #6777 turned these into card screens, where SectionView draws a 2dp near-black divider between every direct child, but left content patterns that pre-date the card chrome: nested SectionViews (SMP/XFTP server detail), loose Text + Spacer + Text (connect-to-desktop device name and version), and a SectionDividerSpaced() as a middle child (Appearance with an image wallpaper, migrate-from-device "error stopping chat"). Each draws stray lines inside the card, most visible in dark/black themes. Restructure to the sibling pattern already used by DetailedSMPStatsLayout: un-nest the server-detail sub-sections (address its own card, stats/subs/sessions as siblings; subscription rows carded), wrap each device name/version block in a single Column, and drop the in-card spacers (the adjacent-row auto-divider already separates them). Layout-only; iOS is a separate codebase and is unaffected. * docs: add plan justifying removing stray card section dividers --- .../views/chatlist/ServersSummaryView.kt | 52 ++++++++----------- .../views/migration/MigrateFromDevice.kt | 1 - .../common/views/remote/ConnectDesktopView.kt | 31 +++++++---- .../common/views/usersettings/Appearance.kt | 1 - ...6-06-22-fix-card-section-stray-dividers.md | 40 ++++++++++++++ 5 files changed, 82 insertions(+), 43 deletions(-) create mode 100644 plans/2026-06-22-fix-card-section-stray-dividers.md diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ServersSummaryView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ServersSummaryView.kt index 5d94b9c2d6..1c2f34e88d 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ServersSummaryView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ServersSummaryView.kt @@ -367,7 +367,7 @@ private fun SMPSubscriptionsSection(subs: SMPServerSubs, summary: SMPServerSumma ) SubscriptionStatusIndicatorView(subs, summary.sessionsOrNew.hasSess) } - Column(Modifier.padding(PaddingValues()).fillMaxWidth()) { + SectionView { InfoRow( generalGetString(MR.strings.servers_info_subscriptions_connections_subscribed), numOrDash(subs.ssActive) @@ -540,20 +540,16 @@ fun XFTPServerSummaryLayout(summary: XFTPServerSummary, statsStartedAt: Instant, ) ) } - if (summary.stats != null || summary.sessions != null) { - SectionDividerSpaced() - } + } - if (summary.stats != null) { - XFTPStatsView(stats = summary.stats, rh = rh, statsStartedAt = statsStartedAt) - if (summary.sessions != null) { - SectionDividerSpaced() - } - } + if (summary.stats != null) { + SectionDividerSpaced() + XFTPStatsView(stats = summary.stats, rh = rh, statsStartedAt = statsStartedAt) + } - if (summary.sessions != null) { - ServerSessionsView(summary.sessions) - } + if (summary.sessions != null) { + SectionDividerSpaced() + ServerSessionsView(summary.sessions) } SectionBottomSpacer() @@ -572,27 +568,21 @@ fun SMPServerSummaryLayout(summary: SMPServerSummary, statsStartedAt: Instant, r ) ) } - if (summary.stats != null || summary.subs != null || summary.sessions != null) { - SectionDividerSpaced() - } + } - if (summary.stats != null) { - SMPStatsView(stats = summary.stats, remoteHostInfo = rh, statsStartedAt = statsStartedAt) - if (summary.subs != null || summary.sessions != null) { - SectionDividerSpaced() - } - } + if (summary.stats != null) { + SectionDividerSpaced() + SMPStatsView(stats = summary.stats, remoteHostInfo = rh, statsStartedAt = statsStartedAt) + } - if (summary.subs != null) { - SMPSubscriptionsSection(subs = summary.subs, summary = summary, rh = rh) - if (summary.sessions != null) { - SectionDividerSpaced() - } - } + if (summary.subs != null) { + SectionDividerSpaced() + SMPSubscriptionsSection(subs = summary.subs, summary = summary, rh = rh) + } - if (summary.sessions != null) { - ServerSessionsView(summary.sessions) - } + if (summary.sessions != null) { + SectionDividerSpaced() + ServerSessionsView(summary.sessions) } SectionBottomSpacer() diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/migration/MigrateFromDevice.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/migration/MigrateFromDevice.kt index fd6b27482d..87784f009e 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/migration/MigrateFromDevice.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/migration/MigrateFromDevice.kt @@ -196,7 +196,6 @@ private fun MutableState.ChatStopInProgressView() { private fun MutableState.ChatStopFailedView(reason: String) { SectionView(stringResource(MR.strings.error_stopping_chat)) { Text(reason) - SectionDividerSpaced() SettingsActionItemWithContent( icon = painterResource(MR.images.ic_report_filled), text = stringResource(MR.strings.auth_stop_chat), diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/remote/ConnectDesktopView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/remote/ConnectDesktopView.kt index 86be99d1bf..2d2de2881f 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/remote/ConnectDesktopView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/remote/ConnectDesktopView.kt @@ -147,8 +147,11 @@ private fun ConnectDesktop(deviceName: String, remoteCtrls: SnapshotStateList) { AppBarTitle(stringResource(MR.strings.verify_connection)) SectionView(stringResource(MR.strings.connected_to_desktop), contentPadding = PaddingValues(horizontal = DEFAULT_PADDING)) { - CtrlDeviceNameText(session, rc) - CtrlDeviceVersionText(session) + Column { + CtrlDeviceNameText(session, rc) + Spacer(Modifier.height(DEFAULT_PADDING_HALF)) + CtrlDeviceVersionText(session) + } } SectionDividerSpaced() @@ -308,8 +316,11 @@ private fun CtrlDeviceVersionText(session: RemoteCtrlSession) { private fun ActiveSession(session: RemoteCtrlSession, rc: RemoteCtrlInfo, close: () -> Unit) { AppBarTitle(stringResource(MR.strings.connected_to_desktop)) SectionView(stringResource(MR.strings.connected_desktop), contentPadding = PaddingValues(horizontal = DEFAULT_PADDING)) { - Text(rc.deviceViewName) - CtrlDeviceVersionText(session) + Column { + Text(rc.deviceViewName) + Spacer(Modifier.height(DEFAULT_PADDING_HALF)) + CtrlDeviceVersionText(session) + } } if (session.sessionCode != null) { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/Appearance.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/Appearance.kt index 1c9e602f1b..93c5eb7756 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/Appearance.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/Appearance.kt @@ -561,7 +561,6 @@ object AppearanceScope { color = if (chatModel.remoteHostId != null && themeUserDestination.value != null) MaterialTheme.colors.secondary else MaterialTheme.colors.primary ) } - SectionDividerSpaced() } val state: State = remember(appPrefs.currentTheme.get()) { diff --git a/plans/2026-06-22-fix-card-section-stray-dividers.md b/plans/2026-06-22-fix-card-section-stray-dividers.md new file mode 100644 index 0000000000..72beec92bd --- /dev/null +++ b/plans/2026-06-22-fix-card-section-stray-dividers.md @@ -0,0 +1,40 @@ +# Fix stray card dividers in server info, connect-to-desktop, appearance and migration screens + +Branch: `nd/fix-ui-lines` · base: `master`. + +## Problem + +On several card screens (Android and desktop, current `master`), near-black horizontal lines appear inside section cards where they don't belong — most visible in dark/black themes: + +- **Servers info → tap an SMP or XFTP server**: the server-detail card is sliced by stray lines around its nested stats / subscriptions / sessions blocks. +- **Use from desktop → "Connected to desktop"** (also the connecting / found / verify states): two black lines between the desktop name and its version (e.g. "Desktop" and "v7.0.0.1"). +- **Settings → Appearance** with a custom image wallpaper: a double line with a gap between "Remove image" and "Color mode". +- **Migrate from this device**, "error stopping chat" state: a double line between the error text and the stop-chat action. + +Behaviour is correct everywhere; the bugs are purely visual. + +## Cause + +PR #6777 (`df5ea3d46`, "android, desktop: new settings section design") wrapped `SectionView`'s content in `CardColumnLayout`, which draws a 2 dp divider (`canvasColorForCurrentTheme()`, near-black in dark/black themes) at the bottom of every direct child except the last. The same PR turned these screens into card screens (`ModalView(cardScreen = true)`) but left three content patterns that pre-date the card chrome, each of which now produces stray lines: + +1. **Nested `SectionView`s** inside one outer `SectionView` (server detail) → card-in-card, plus a line around every nested block and spacer. +2. **Loose `Text` + `Spacer` + `Text`** as separate children of a card `SectionView` (connect-to-desktop name + version) → a line after the text and after the spacer. +3. **`SectionDividerSpaced()` as a middle child** (Appearance, migration) → on a card screen this is a 30 dp `Spacer`, so it gets a line above *and* below = a double line bracketing a gap. + +This is the same bug class as `2026-05-25-fix-e2e-encryption-section-divider.md` (#7012); #6777 reintroduced further instances that earlier fix did not cover. + +## Fix + +`apps/multiplatform/common/...`, layout-only, matching the reference sibling pattern already used by `DetailedSMPStatsLayout`: + +- **`ServersSummaryView.kt`** — `SMPServerSummaryLayout` / `XFTPServerSummaryLayout`: stop wrapping everything in one outer `SectionView`; make the address its own card and each sub-section a top-level sibling separated by `SectionDividerSpaced()` placed *between* them. `SMPSubscriptionsSection`'s rows are wrapped in their own `SectionView` so they keep card chrome. +- **`ConnectDesktopView.kt`** — wrap each device-name + version block in a single `Column` (4 states), so the card sees one child and draws no internal divider. +- **`Appearance.kt`** / **`MigrateFromDevice.kt`** — delete the in-card `SectionDividerSpaced()`; the auto-divider between the two now-adjacent rows already separates them (the #6777 precedent for in-card spacers). + +## Risk + +- Layout-only: no logic, state, side-effect, or click-handler change. +- iOS is a separate codebase (native grouped lists) and is unaffected. +- Verified: `:common:compileKotlinDesktop` and the full desktop AppImage build succeed, and the running app renders the screens correctly. Independent adversarial review confirmed every conditional branch and separator is preserved across all stats/subs/sessions combinations. +- Deliberately out of scope: `SectionTextFooter`-inside-card instances (NetworkAndServers, Migrate*) — these render as a single normal row-separator above an in-card caption, not the stray-line bug; a separate #6777-style cleanup. +- Rollback: `git revert` the fix commit. From 8de39c25de505ea36798acd80689f066969905ce Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Wed, 22 Jul 2026 12:11:54 +0000 Subject: [PATCH 11/22] android, desktop: fix video preview expanding into empty black area (#7286) * android, desktop: fix video preview expanding into empty black area The video message box (CHAT_IMAGE_LAYOUT_ID) never gave itself a definite height - it took the height of its tallest child. That child is the player surface, which has no stable intrinsic height until playback starts: on Android an unprepared StyledPlayerView reports no video size, so its AspectRatioFrameLayout (RESIZE_MODE_FIXED_WIDTH, aspect 0) does not shrink. Before #6726 this was masked: the box was measured with unbounded height, so the surface collapsed to 0. #6726 bounded the box to 2.33x width to constrain tall images, and the unprepared surface then expanded to fill that height, showing as a long empty black strip below the preview once a video downloads. Give the box a definite size from the preview aspect ratio, mirroring CIImageView. Height follows the measured (clamped) width via Modifier.layout so wide videos on narrow screens don't leave an empty strip (the #7223 fix). * plans: justify video preview black-area fix --- .../common/views/chat/item/CIVideoView.kt | 16 ++++- ...2026-07-21-fix-video-preview-black-area.md | 70 +++++++++++++++++++ 2 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 plans/2026-07-21-fix-video-preview-black-area.md diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIVideoView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIVideoView.kt index f8dfba4c6c..8ca0add460 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIVideoView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIVideoView.kt @@ -25,6 +25,7 @@ import chat.simplex.common.views.chat.chatViewScrollState import dev.icerock.moko.resources.StringResource import java.io.File import java.net.URI +import kotlin.math.roundToInt @Composable fun CIVideoView( @@ -38,12 +39,25 @@ fun CIVideoView( receiveFile: (Long) -> Unit ) { val blurred = remember { mutableStateOf(appPrefs.privacyMediaBlurRadius.get() > 0) } + val preview = remember(image) { base64ToBitmap(image) } Box( Modifier.layoutId(CHAT_IMAGE_LAYOUT_ID) + .then( + if (!smallView) { + val w = if (preview.width * 0.97 <= preview.height) videoViewFullWidth(LocalWindowWidth()) * 0.75f else DEFAULT_MAX_IMAGE_WIDTH + // Size the media box from the preview aspect ratio (as CIImageView does), else the unprepared player surface + // expands to PriorityLayout's max height and shows as a black strip; height tracks the clamped width (#7223). + Modifier.width(w).layout { measurable, constraints -> + val width = constraints.maxWidth.coerceAtMost(w.roundToPx().coerceAtLeast(0)) + val height = (width * (preview.height.toFloat() / preview.width.toFloat()).coerceAtMost(2.33f)).roundToInt().coerceAtMost(constraints.maxHeight) + val placeable = measurable.measure(Constraints.fixed(width, height)) + layout(width, height) { placeable.place(0, 0) } + } + } else Modifier + ) .desktopModifyBlurredState(!smallView, blurred, showMenu), contentAlignment = Alignment.TopEnd ) { - val preview = remember(image) { base64ToBitmap(image) } val filePath = remember(file, CIFile.cachedRemoteFileRequests.toList()) { mutableStateOf(getLoadedFilePath(file)) } val sizeMultiplier = if (smallView) 0.38f else 1f if (chatModel.connectedToRemote()) { diff --git a/plans/2026-07-21-fix-video-preview-black-area.md b/plans/2026-07-21-fix-video-preview-black-area.md new file mode 100644 index 0000000000..b5643ecb6b --- /dev/null +++ b/plans/2026-07-21-fix-video-preview-black-area.md @@ -0,0 +1,70 @@ +# Fix: video preview expands into a long empty black area + +## Problem + +On Android, once a video message finishes downloading, its in-chat preview grows +into a tall empty black area below the thumbnail. It appears the moment the file +download completes (before playback), and is worst for landscape videos. + +## Root cause + +The video message renders into the shared `CHAT_IMAGE_LAYOUT_ID` box measured by +`PriorityLayout` (`FramedItemView.kt`). Unlike `CIImageView`, `CIVideoView` never +gave that box a definite size — it inherited the height of its tallest child. + +Once downloaded, the tallest child is the player surface. On Android that is a +`StyledPlayerView` with `RESIZE_MODE_FIXED_WIDTH`. Before playback the player is +unprepared (the media source is only set in `VideoPlayer.start()`, called from +`play()`), so it reports no video size and its `AspectRatioFrameLayout` keeps +aspect ratio 0 and does **not** shrink its height. + +This was latent until #6726 ("constrain image sizes for previews"). That change +bounded the box to `maxHeight = 2.33 × width` to tame extreme image aspect +ratios. Before it, the box was measured with unbounded height, so on Android the +unprepared surface collapsed to 0 (`getDefaultSize` with an `UNSPECIFIED` spec) +and contributed no height — accidentally masking the missing-size flaw. After +#6726 the surface expands to fill the now-bounded `2.33 × width`, showing as a +long black strip behind the shorter thumbnail. + +The later image fixes (#7123 / #7125 / #7223) all touched `CIImageView` only, so +video was never given a definite box size and kept the defect. + +## Fix + +Give `CIVideoView`'s `CHAT_IMAGE_LAYOUT_ID` box a definite size derived from the +preview aspect ratio, mirroring `CIImageView`. Height is computed from the +*measured* (clamped) width via `Modifier.width(w).layout { … }`, not the nominal +width, so a wide video whose nominal `w = DEFAULT_MAX_IMAGE_WIDTH` (500dp) is +clamped on a narrower screen does not leave an empty strip below — the same +correction #7223 applied to images. Applied only for `!smallView`; the small +chat-list thumbnail (`smallView = true`) keeps its existing sizing. + +With the box sized to the preview footprint, the player surface can no longer +expand past it (its bounded max height now equals the thumbnail height), and the +opaque preview drawn on top exactly covers it. When playing, `RESIZE_MODE_FIXED_WIDTH` +conforms the surface to the real video aspect, which matches the thumbnail. + +## Alternatives considered + +- **Force the Android `StyledPlayerView` aspect from the preview.** Android-only; + treats one render backend and leaves the box height still child-dependent — a + workaround at the wrong layer. +- **Only mount `PlayerView` while playing.** Larger behavioural change; risks the + play/preview transition blinking the code already guards against; does not + establish the container invariant. +- **`matchParentSize()` on the player.** Breaks: when playing, the preview is + removed, so no sibling defines the box and it collapses to 0. +- **Naive `Modifier.width(w).height(w * ratio)`.** Reintroduces the exact #7223 + empty-strip bug for wide videos on screens narrower than 500dp. + +The chosen fix restores the invariant "a media chat item occupies exactly the +media's aspect-ratio footprint" at the correct layer (the media container), for +all render states (pre-download / downloaded-idle / playing / encrypted) and both +platforms, using the same aspect source the player conforms to. + +## Verification + +- `android:assembleDebug` (arm64 debug APK) — BUILD SUCCESSFUL. +- Desktop `createDistributable` + AppImage (Linux x86_64) — BUILD SUCCESSFUL. +- Control APK built from the same base without the fix, to A/B the black area + against the fixed build (both `7.0-beta.4`, differing only by this change). From 172b11b511f766a700307d5e007a768f1517c1a5 Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Wed, 22 Jul 2026 12:12:23 +0000 Subject: [PATCH 12/22] android, desktop: don't allow swipe-to-reply to a marked-deleted message (#7214) The swipe handler is created with rememberDismissState, whose lambda is frozen at first composition and captures a stale cItem. When a message is marked deleted while on screen, that lambda still sees the pre-deletion item, so an in-lambda itemDeleted check is bypassed and the quote is set, producing SEInvalidQuote on send. Disable the swipe modifier (recomputed live each recomposition) when itemDeleted != null so the gesture is removed entirely. --- .../kotlin/chat/simplex/common/views/chat/ChatView.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt index ea7d96059d..e078a14d54 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt @@ -1963,7 +1963,7 @@ fun BoxScope.ChatItemsList( } false } - val swipeableModifier = if (appPlatform.isDesktop || !chatInfo.sendMsgEnabled) Modifier else SwipeToDismissModifier( + val swipeableModifier = if (appPlatform.isDesktop || !chatInfo.sendMsgEnabled || cItem.meta.itemDeleted != null) Modifier else SwipeToDismissModifier( state = dismissState, directions = setOf(DismissDirection.EndToStart), swipeDistance = with(LocalDensity.current) { 30.dp.toPx() }, From ecd1237bf4556ee92ba79b970e6729fe16f97ab8 Mon Sep 17 00:00:00 2001 From: SimpleX Chat Date: Wed, 22 Jul 2026 13:26:22 +0000 Subject: [PATCH 13/22] 7.0.0-beta.5: android 364, desktop 153, ios 343 --- apps/ios/SimpleX.xcodeproj/project.pbxproj | 36 +++++++++---------- apps/multiplatform/gradle.properties | 8 ++--- packages/simplex-chat-nodejs/package.json | 2 +- .../simplex-chat-nodejs/src/download-libs.js | 2 +- .../src/simplex_chat/_version.py | 4 +-- 5 files changed, 26 insertions(+), 26 deletions(-) diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 2098113bef..0495961d59 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -183,8 +183,8 @@ 64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */; }; 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829982D54AEED006B9E89 /* libgmp.a */; }; 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829992D54AEEE006B9E89 /* libffi.a */; }; - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.9-J30uILApgSuBRyrol6CHua-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.9-J30uILApgSuBRyrol6CHua-ghc9.6.3.a */; }; - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.9-J30uILApgSuBRyrol6CHua.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.9-J30uILApgSuBRyrol6CHua.a */; }; + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.10-Fr7Tzkw2TAVKpbtViCLw34-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.10-Fr7Tzkw2TAVKpbtViCLw34-ghc9.6.3.a */; }; + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.10-Fr7Tzkw2TAVKpbtViCLw34.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.10-Fr7Tzkw2TAVKpbtViCLw34.a */; }; 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */; }; 64D0C2C029F9688300B38D5F /* UserAddressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */; }; 64D0C2C229FA57AB00B38D5F /* UserAddressLearnMore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */; }; @@ -563,8 +563,8 @@ 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTimePicker.swift; sourceTree = ""; }; 64C829982D54AEED006B9E89 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; 64C829992D54AEEE006B9E89 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.9-J30uILApgSuBRyrol6CHua-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.0.0.9-J30uILApgSuBRyrol6CHua-ghc9.6.3.a"; sourceTree = ""; }; - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.9-J30uILApgSuBRyrol6CHua.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.0.0.9-J30uILApgSuBRyrol6CHua.a"; sourceTree = ""; }; + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.10-Fr7Tzkw2TAVKpbtViCLw34-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.0.0.10-Fr7Tzkw2TAVKpbtViCLw34-ghc9.6.3.a"; sourceTree = ""; }; + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.10-Fr7Tzkw2TAVKpbtViCLw34.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.0.0.10-Fr7Tzkw2TAVKpbtViCLw34.a"; sourceTree = ""; }; 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressView.swift; sourceTree = ""; }; 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressLearnMore.swift; sourceTree = ""; }; @@ -735,8 +735,8 @@ 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */, 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */, 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */, - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.9-J30uILApgSuBRyrol6CHua-ghc9.6.3.a in Frameworks */, - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.9-J30uILApgSuBRyrol6CHua.a in Frameworks */, + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.10-Fr7Tzkw2TAVKpbtViCLw34-ghc9.6.3.a in Frameworks */, + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.10-Fr7Tzkw2TAVKpbtViCLw34.a in Frameworks */, CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -822,8 +822,8 @@ 64C829992D54AEEE006B9E89 /* libffi.a */, 64C829982D54AEED006B9E89 /* libgmp.a */, 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */, - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.9-J30uILApgSuBRyrol6CHua-ghc9.6.3.a */, - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.9-J30uILApgSuBRyrol6CHua.a */, + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.10-Fr7Tzkw2TAVKpbtViCLw34-ghc9.6.3.a */, + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.0.0.10-Fr7Tzkw2TAVKpbtViCLw34.a */, ); path = Libraries; sourceTree = ""; @@ -2081,7 +2081,7 @@ CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 342; + CURRENT_PROJECT_VERSION = 343; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; @@ -2131,7 +2131,7 @@ CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 342; + CURRENT_PROJECT_VERSION = 343; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; @@ -2173,7 +2173,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 342; + CURRENT_PROJECT_VERSION = 343; DEVELOPMENT_TEAM = 5NN7GUYB6T; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.0; @@ -2193,7 +2193,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 342; + CURRENT_PROJECT_VERSION = 343; DEVELOPMENT_TEAM = 5NN7GUYB6T; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.0; @@ -2218,7 +2218,7 @@ CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 342; + CURRENT_PROJECT_VERSION = 343; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GCC_OPTIMIZATION_LEVEL = s; @@ -2255,7 +2255,7 @@ CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 342; + CURRENT_PROJECT_VERSION = 343; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_CODE_COVERAGE = NO; @@ -2292,7 +2292,7 @@ CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 342; + CURRENT_PROJECT_VERSION = 343; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; DYLIB_COMPATIBILITY_VERSION = 1; @@ -2343,7 +2343,7 @@ CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 342; + CURRENT_PROJECT_VERSION = 343; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; DYLIB_COMPATIBILITY_VERSION = 1; @@ -2397,7 +2397,7 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 342; + CURRENT_PROJECT_VERSION = 343; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; @@ -2431,7 +2431,7 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 342; + CURRENT_PROJECT_VERSION = 343; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; diff --git a/apps/multiplatform/gradle.properties b/apps/multiplatform/gradle.properties index 7e80ae2a00..1eb8b7cbf7 100644 --- a/apps/multiplatform/gradle.properties +++ b/apps/multiplatform/gradle.properties @@ -24,13 +24,13 @@ android.nonTransitiveRClass=true kotlin.mpp.androidSourceSetLayoutVersion=2 kotlin.jvm.target=11 -android.version_name=7.0-beta.4 -android.version_code=363 +android.version_name=7.0-beta.5 +android.version_code=364 android.bundle=false -desktop.version_name=7.0-beta.4 -desktop.version_code=152 +desktop.version_name=7.0-beta.5 +desktop.version_code=153 kotlin.version=2.1.20 gradle.plugin.version=8.7.0 diff --git a/packages/simplex-chat-nodejs/package.json b/packages/simplex-chat-nodejs/package.json index a90553a062..b672a78d9b 100644 --- a/packages/simplex-chat-nodejs/package.json +++ b/packages/simplex-chat-nodejs/package.json @@ -1,6 +1,6 @@ { "name": "simplex-chat", - "version": "7.0.0-beta.4", + "version": "7.0.0-beta.5", "main": "dist/index.js", "types": "dist/index.d.ts", "files": [ diff --git a/packages/simplex-chat-nodejs/src/download-libs.js b/packages/simplex-chat-nodejs/src/download-libs.js index 70758b0c0e..967dd836c0 100644 --- a/packages/simplex-chat-nodejs/src/download-libs.js +++ b/packages/simplex-chat-nodejs/src/download-libs.js @@ -4,7 +4,7 @@ const path = require('path'); const extract = require('extract-zip'); const GITHUB_REPO = 'simplex-chat/simplex-chat-libs'; -const RELEASE_TAG = 'v7.0.0-beta.4'; +const RELEASE_TAG = 'v7.0.0-beta.5'; const BACKEND = (process.env.SIMPLEX_BACKEND || process.env.npm_config_simplex_backend || 'sqlite').toLowerCase(); if (BACKEND !== 'sqlite' && BACKEND !== 'postgres') { diff --git a/packages/simplex-chat-python/src/simplex_chat/_version.py b/packages/simplex-chat-python/src/simplex_chat/_version.py index 39627b657e..7bc0344c03 100644 --- a/packages/simplex-chat-python/src/simplex_chat/_version.py +++ b/packages/simplex-chat-python/src/simplex_chat/_version.py @@ -5,5 +5,5 @@ Bump both together for normal releases. For wrapper-only fixes use a PEP 440 post-release: __version__ = "6.5.2.post1", LIBS_VERSION unchanged. """ -__version__ = "7.0.0b4" # PEP 440 — read by hatchling for wheel metadata -LIBS_VERSION = "7.0.0-beta.4" # simplex-chat-libs release tag (no 'v' prefix) +__version__ = "7.0.0b5" # PEP 440 — read by hatchling for wheel metadata +LIBS_VERSION = "7.0.0-beta.5" # simplex-chat-libs release tag (no 'v' prefix) From 5cf03de92da66ae31665bf04acc0d3be02301eaa Mon Sep 17 00:00:00 2001 From: Evgeny Date: Wed, 22 Jul 2026 18:37:53 +0100 Subject: [PATCH 14/22] blog: SimpleX public names (#7291) * post * update readme * update * typos * the --- README.md | 12 ++-- ...nsortium-crowdfunding-freedom-of-speech.md | 2 +- blog/20260722-simplex-public-names.md | 67 ++++++++++++++++++ blog/README.md | 14 ++++ blog/images/20260722-connect-name.png | Bin 0 -> 225993 bytes blog/images/20260722-phone-name-light.webp | Bin 0 -> 67128 bytes blog/images/20260722-phone-name.webp | Bin 0 -> 73176 bytes blog/images/20260722-register-name.png | Bin 0 -> 205154 bytes docs/guide/register-simplex-name.md | 4 +- 9 files changed, 89 insertions(+), 10 deletions(-) create mode 100644 blog/20260722-simplex-public-names.md create mode 100644 blog/images/20260722-connect-name.png create mode 100644 blog/images/20260722-phone-name-light.webp create mode 100644 blog/images/20260722-phone-name.webp create mode 100644 blog/images/20260722-register-name.png diff --git a/README.md b/README.md index a515a25df6..601ab5a161 100644 --- a/README.md +++ b/README.md @@ -220,12 +220,14 @@ You can use SimpleX with your own servers and still communicate with people usin Recent and important updates: -[Jul 29, 2025 SimpleX Chat v6.4.1: welcome your contacts, review members to protect groups, and more.](./blog/20250729-simplex-chat-v6-4-1-welcome-contacts-protect-groups-app-security.md) +[Jul 22, 2026. SimpleX Public Names — a Name Nobody Can Take From You](./blog/20260722-simplex-public-names.md) + +[Apr 30, 2026. SimpleX Channels, SimpleX Network Consortium and Community Crowdfunding - to Preserve Freedom of Speech](./blog/20260430-simplex-channels-v6-5-consortium-crowdfunding-freedom-of-speech.md) + +[Jul 29, 2025. SimpleX Chat v6.4.1: welcome your contacts, review members to protect groups, and more.](./blog/20250729-simplex-chat-v6-4-1-welcome-contacts-protect-groups-app-security.md) [Jul 3, 2025 SimpleX network: new experience of connecting with people — available in SimpleX Chat v6.4-beta.4](./blog/20250703-simplex-network-protocol-extension-for-securely-connecting-people.md) -[Mar 8, 2025. SimpleX Chat v6.3: new user experience and safety in public groups](./blog/20250308-simplex-chat-v6-3-new-user-experience-safety-in-public-groups.md) - [Jan 14, 2025. SimpleX network: large groups and privacy-preserving content moderation](./blog/20250114-simplex-network-large-groups-privacy-preserving-content-moderation.md) [Dec 10, 2024. SimpleX network: preset servers operated by Flux, business chats and more with v6.2 of the apps](./20241210-simplex-network-v6-2-servers-by-flux-business-chats.md) @@ -242,10 +244,6 @@ Recent and important updates: [Apr 22, 2023. SimpleX Chat: vision and funding, v5.0 released with videos and files up to 1gb](./blog/20230422-simplex-chat-vision-funding-v5-videos-files-passcode.md). -[Mar 1, 2023. SimpleX File Transfer Protocol – send large files efficiently, privately and securely, soon to be integrated into SimpleX Chat apps.](./blog/20230301-simplex-file-transfer-protocol.md). - -[Nov 8, 2022. Security audit by Trail of Bits, the new website and v4.2 released](./blog/20221108-simplex-chat-v4.2-security-audit-new-website.md). - [All updates](./blog) ## :zap: Quick installation of a terminal app diff --git a/blog/20260430-simplex-channels-v6-5-consortium-crowdfunding-freedom-of-speech.md b/blog/20260430-simplex-channels-v6-5-consortium-crowdfunding-freedom-of-speech.md index 4a63cb87ca..ae163d3a04 100644 --- a/blog/20260430-simplex-channels-v6-5-consortium-crowdfunding-freedom-of-speech.md +++ b/blog/20260430-simplex-channels-v6-5-consortium-crowdfunding-freedom-of-speech.md @@ -1,6 +1,6 @@ --- layout: layouts/article.html -title: "SimpleX Channels, SimpleX Network Consortium and Community Crowdfunding - to Preserve Freedom of Speech" +title: "SimpleX Channels, SimpleX Network Consortium and Community Crowdfunding — to Preserve Freedom of Speech" date: 2026-04-30 previewBody: blog_previews/20260430.html image: images/20260430-home.png diff --git a/blog/20260722-simplex-public-names.md b/blog/20260722-simplex-public-names.md new file mode 100644 index 0000000000..03db374537 --- /dev/null +++ b/blog/20260722-simplex-public-names.md @@ -0,0 +1,67 @@ +--- +layout: layouts/article.html +title: "SimpleX Public Names — a Name Nobody Can Take From You" +date: 2026-07-22 +preview: "You can now give your channel or business a test SimpleX name that people can remember. Test names are free in v7-beta." +image: images/20260722-register-name.png +imageWide: true +permalink: "/blog/20260722-simplex-public-names.html" +--- + +# SimpleX Public Names — a Name Nobody Can Take From You + +**Published:** Jul 22, 2026 + +You can now give your channel or business a test SimpleX name that people can remember. Test names are free in v7-beta[^testing]. + +## Public names for channels and businesses — without user IDs + + + + +Before names, the only way to bring people to your channel or business on SimpleX Network was a link — but you cannot use a link in a podcast or a poster: nobody would remember it. + +Every place where you could get a name so far belongs to someone else: Telegram can revoke your username, a registrar can suspend your domain. + +So we designed SimpleX names for no one to own the registry — on the Ethereum blockchain. If you register `example.simplex`, people type `#example` to join your channel, or `@example.simplex` to message you. If a server operator deletes your link, you can point the name to a new one. Only you control the name with the key in your wallet[^ens]. + +And we did not add user identifiers to do it. Names are only for those who want to be found — channels, businesses, communities — and servers still cannot see who joined your channel or wrote to you. + +We plan to launch `.simplex` names later this year, and to provide the first names to [crowdfunding investors](#community-crowdfunding) as perks. + +## How to register a name + + + +To register a test name you need an Ethereum wallet, such as MetaMask, and your SimpleX address or channel link from the app. + +Setting up a name takes two steps. On the SimpleX Name Service [test webpage](https://testing-names.simplex.chat), search for the name you want — currently 6 characters or more — paste your address or channel link into the page, and complete the registration. + +In the app, you need to claim the name for your channel or contact address — it prevents connecting to your channel or address via any other name. Open your SimpleX address or channel page, tap **Get SimpleX name**, enter the name, and tap Save. + +See [this guide](../docs/guide/register-simplex-name.md) for more details. + +## How to connect via names + + + +Type the name into the search bar — `#example.testing` to join the channel, `@example.testing` to send direct messages. You can also send names in messages — they work as links. + +Connecting via a name is private. Unlike most applications accessing the chain through a centralized RPC service, SimpleX Chat app resolves names via two independent servers of SimpleX Network, so that no server can see both the name and the user's IP address. + +Read more about names in the [whitepaper](https://github.com/simplex-chat/simplex-chat/blob/master/docs/protocol/names-overview.md): their purpose, architecture, security model and planned future work. + +## Community Crowdfunding + +To ensure the long term success of SimpleX Network we established [SimpleX Network Consortium](https://simplexnetwork.org/consortium.html) — an agreement between a non-profit foundation created for protocol licensing and governance and SimpleX Chat, Inc. + +The commercial model for the network that we are building aims to make both our and other businesses on the network profitable. We recently [presented the technology design](https://www.youtube.com/watch?v=UhW8AuoRgxg) for this commercial model at Web3 Summit. + +The planned crowdfunding will fund this development. You can [register your interest](https://simplexchat.typeform.com/crowdfunding), and join the [SimpleX Crowdfunding News channel](https://smp10.simplex.im/c#q09nMBmWFGz1m2TvgfZFaEOG5D2a7Ma9mSkl6pHXEsg) for updates. + +_Disclaimer: SimpleX Chat is testing the waters for a possible Reg CF offering. We’re not asking for or accepting any money right now, and we won’t accept any if sent. We can’t accept any offers to buy securities or take any payments until the official filing is done and it’s live through a regulated platform. Our testing the waters and your possible indications of interest doesn’t create any obligation or commitment of any kind._ + + +[^testing]: Test names are free to register; you only need to pay the blockchain fee. The `.testing` namespace is temporary — test names will stop working in the app one month after `.simplex` name sales launch. + +[^ens]: SimpleX Name Service (SNS) is a fork of Ethereum Name Service (ENS), but without its centralized dependencies. ENS depends on an off-chain indexer and a hosted metadata service. SNS is fully decentralized — names are indexed and hosted on the blockchain. See [Differences from ENS](https://github.com/simplex-chat/simplex-chat/blob/master/docs/protocol/names-overview.md#differences-from-ens). diff --git a/blog/README.md b/blog/README.md index 4544dc0f45..6122eb3c39 100644 --- a/blog/README.md +++ b/blog/README.md @@ -1,5 +1,19 @@ # Blog +Jul 22, 2026 [SimpleX Public Names — a Name Nobody Can Take From You](./20260722-simplex-public-names.md) + +You can now give your channel or business a test SimpleX name that people can remember and nobody can take from you. Test names are free in v7-beta. + +--- + +Apr 30, 2026 [SimpleX Channels, SimpleX Network Consortium and Community Crowdfunding - to Preserve Freedom of Speech](./20260430-simplex-channels-v6-5-consortium-crowdfunding-freedom-of-speech.md) + +Freedom of speech needs infrastructure that protects it by design - protocols, governance and funding. + +v6.5 release brings SimpleX Channels: a new model for online publishing built for participation privacy. + +--- + Jul 29, 2025 [SimpleX Chat v6.4.1: welcome your contacts, review members to protect groups, and more.](./20250729-simplex-chat-v6-4-1-welcome-contacts-protect-groups-app-security.md) What's new in v6.4.1: diff --git a/blog/images/20260722-connect-name.png b/blog/images/20260722-connect-name.png new file mode 100644 index 0000000000000000000000000000000000000000..7e835073ff71deb53a0e2bebc6083123f2d438eb GIT binary patch literal 225993 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

TcEPl%M2-|r`jvoQc>Xq(n-{b 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

dEV}^|R6a=tm?SZ*l@+ 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 literal 0 HcmV?d00001 diff --git a/blog/images/20260722-phone-name-light.webp b/blog/images/20260722-phone-name-light.webp new file mode 100644 index 0000000000000000000000000000000000000000..aa9f81918fac0e72d164217cb76a411f8985986e GIT binary patch literal 67128 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 literal 0 HcmV?d00001 diff --git a/blog/images/20260722-phone-name.webp b/blog/images/20260722-phone-name.webp new file mode 100644 index 0000000000000000000000000000000000000000..df812bead6aee35fe8cdda68ab6713b4aad9eedf GIT binary patch literal 73176 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�>|+fL?-OJ!9oI#CwVu^i;7W5H8W-Q6*e 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�o^}zl{HI=?!1XibiKpE|@pE_q;ziYh7BgM~X2fUl`@OM5-7ABzulsa7 zr%jRw2XHg-m}5&`5a?lZ$y0!T=mlQ%x3Q^Wgmga{DOnzbbcUvixEHkFq-i}#`l~fW zrqdI^Q!XTW%xWepJ+!Fs569DsZacY`5@DCxVBYnMy>h4bP`8I+12?*Djwo*gCC49|~CN{iS3=x|iM+bJ$QU1hI5`cAR?X&U)Ne+g)3R(T(bhF259^2=g)d-N^*-u~A7aHR zW~0?8e_P$@5 zj#e0?g3AG$w%)*uk; z=hHHh)$k^lY$149bs|Ylk2KkIrvV`j2IsOrBx{VO^3u_Vy;knhPx6H0goqx2Bc;n*kgL2$@Sf$u$km(w%(-w6i>Z<- zrp)%bkh4uiSd=x0(6`VG$ke&7=%w@#o<44IH_azieg? zMu;2kU?9IFZHZBQ8j*Hh9Bzj8IqQe+!=G`0C}?TSWfi=Q->maHW41@;H+<}VT$lVXR~q>mL>WpQ?w#;SIXqey z&l-*Nv-Z#5nLnlTAc-)v@CqU*V@wsBPERu_*gybIffl(R6&S~q@}35kWinJbW}ZfJFQEW!4u zA$M5v_iFoU_oNx0BNPt8HV4p5%@3b>SM9^rS6HaH5+A4Srlm(XT=$p@KErzfjBsy9 zLHv-kh0v5Nx@0CCIR^CN8|-ed4v9HpCIsXdp)>zF{PAh?D`&=pW#*Pi5%4)oR*ZXS zVleZ!J#U&TxU^W{N%>~0u#R&fmm}YtSt>oI87OuApYxNeoo{}XBuIquhhcAUVg>t4 z0M@KX&a~NS$zy{^&Q|@_J*;mF2C1TnaOcjw@VGVmw3xG;gSN%5AOs1SK8nRUEAvvopbPp!}^X&-+R| z+Yz?XbYANZZ(f(4^Qb%u0|2{>oiea*h2OtAvt7{@yWCIHA#vY-*)#peYki7*3fk74 zT)3r+N!g=xQP2Ktc9=kOT)Z)>8URd|k3EbnB^6YA2HLJS@pLK9R0J8q3V-cZ&BU?Z z4wC!J3Wg`E6bW?qmYMH0EjS}8x-<~AEg?B?TW}VeZCON*@LpPm8}q&S=YIh(D<89? zT6yw_LS758Tc>qr1C_R%%P&XOm=)8}w=@LmVr()PO&}J7ybi5uk@}_kE_VOWSiqE>YBpxrl7$n zyYawIYVwfz`W(!74dS9ul~#})C6#&35~q|m$C3`7oL*k0po;#>!|>vSKsN2u9e6Ah zh#tV4XDB1-Rjo3Jia%Bl6neP9ndKRpb!4vWPCy&kEk*6vpH&F2v?|Xt0*hW|Di$M_ z%Cx>t?(48M(Dii=*cusTu{ko=^OWx^h>Si+ZgeTK@g){4HD)ojs$ITLzC?y2Co1bYA*MbT`T-+N8Y&SA=Lvd!xuHn&%Q5_{n0#AFaLTtb$ zqyD=Et4j-Br3lzr8Axd(U2J~|E$z@5DPyKZG1!_Hom}@6&PY82WP(IDL?hi>I3Uq> zp4GTJp-A`fP2RaRb14Lz$re!>m77S)zBPbs`vuB8r0w@s%l0{MPXW0I{r^YPSH?y4 zgk1_c~iG7p_MXQWAvmJd~ zvr48QZ<7Vjn&W!-(yHy~WoNJB!7JOCI!6<M==s7R`P1Smy3j!gDU3Dy{g22x(v@z{dXpa5}NxmzpRa$qw9Q=2%VBn2$q|t z!uDy;truo#6c+DfK!Ms$FRI6i;WdEU`k6m^nW!0pWVsfxWM8t;R=`6wGQ~%!>}3M? zAVpuw3dq?%djIBNJl|w5tfPPr8<`usl$S{;B}^Rf6)t4~#&QOY67{AH9T{@2DOF1a zq!Wb(1O%n)DgrIbe(P+`0L%E2QqZMk;ZtM-u$+{;habL2LYu|t9}dXu2Y^33^NCj- z32wI8zJB7=z;WS0^zN}4;f1Eo@k2TIi@kRZ6rZ2HBJv3Dl3YQlSo}DuoSTFGFvp`?vrH3@o+qT%^uHD6o?1K^R7gT(+C4Yi=d^dlRsqh$v*cLuK%S; z0ZK^;isNG3S7D^86m1?=V9s>h1CAWEfICHCO!Vy04RRsHGw^oAZm8)S`7`*tZ^w^C ziS8Q!slc)coUXNVftqZkBEHlgjhRk0-oD|p{QX*Z46@S)!D*CMHA_@?9oI5EKru&q zxd;tdK$GvH3eL7Tgpwy>%OVSQT$5F+ARzXFEoSQU2YDX#AIFB~31rRw-0Qerob%kq zxWkrWmwKD(1~cj&dlw%PTs)0{XLR%dn@nObt>*MQ+I1dlb8Qrlbwe&^O+b-mpg|Jj zCzW#eQKUI(8e4i#IdrRHeR<0Yq^sH3xxyH3NNI@?JE3|1f35Z=R$J&$-iPr1^<`aIJJ85rZXR5NFnghTe2(-T66erhIC}JsfXp z{RNJ(+}TB=W!)Mz1>aUR?lb$Iu0pM4nm4vT=P6HjC)-Rm|=l9Q~D$FVmZLN_DUo&PoGGEZ*&TB!;?Gbd&v*mS* zk$9;<)t?>F2J+D)l;}94$=Vtk2Amj?^?5oqTFEI2wq4(h1IZ&)hDot zp(e?^6v&mMz2NWlNxxRa`3mrP@p`iD>8pQ_B&YjMq&F>eXC$PvB5+%nVwNf$oeZg7 zZpp3MY#7fzz0Uy#Nm6{%qDRkd~FRN&{aMAAb3X z)Ajuv+fvG~&U9mDKB%eT>qmQ?BUqW|uRFu5nn}`Kf>u{}E4h)y2W?Lh@8?oYTmJ51 zU*AjE8t07*IzP6>qkUd6m=^ouJU|)!BDZ8P?vtx-8X6WG&n}h#k)t!>ic6FVy(Htc zRAqc%!4NO&SW94;4+>5C$`3V3H=kQ<2ThdzZ}?JPrhB78M~!U z$@30UAFa@uuu}UhOt5FkzgzC_+fx?o<^ARjyTVh-qGH^Q_=f3{y3kbaq9Ng<$iBZC zzw|M)XM|PpQyIF{0a=4Ee*ai@_#ejQJ`EFayazXP!g;s0+AD%nf6MXL3* zV)Ln*5xsn_5j&Zpmx3icy%uK5@x~IZOsJ8yjZcVvH#qR(Ef9}`XjJ4(bLeD)AV~(V zwO;76la56C`>J^MxF23zf4}a~YoKo)aKw);Z!qVs3ptYx(Z95GlOfZ%$gEqv0MkR+ zL)|aO!$HsO*+3r^^iJjMq87ijao=8*0^G1EkeI|Y)ikqAR4d;|r{J`8DxgYoiOF;P*))+s zq8e*RAa1b7rX%AW&uDD$J+Re%rgu)kw#-PW`F(5iTY~qsQ)e8=3qh${0Y>M-TjmJI z*B=o^yVYnUq9AaC)42oftzT*l=MB4VSa?`MUn4WJQ}6Y*{#)~_jH(!QJs45#Ap43V zZR^%0sZIasJ7!K5kKl7KsqNTv$xx-qe#{?6HCkVFHRv#| zROJ&ozm{SrRUe@WU4X=J!!vZBJ!_-Q=DqVY7(V-{nr}y7pT8bQUp~5TOz~3frAdKCI<*ST zAsu=D`ZvdsT>=gU9ZwB4iMPq9gnk{hH|8Y7S*6Z&KiQsBlWX#qjzS~efBTUXjOWOp zA?IVRwh+P=K7h}>e*+oB zFtnlyLSaQmFjk#b{^|ABz@9Ylz5iB6Nu=_IDTVwMnq*uxny@1Alcv+w$7Mc`HuG3T zG0*>4Z}v#DZ!ZRt;dJa)%2YuX#?_{_tT(kj@6u-#y=eu_X^z9+0dsHBy&|~TvM)6? zT-tff!3*!ZHEhSrr+fP)2QMqRg$t5FYdFij4JilqCh1}dsYRO_&hoZvlzuFnS9Ou@S)+qV5Ws&Ok;O&Zq+NRLDtV-pcYU3u! zpx&Ff>EO5X!#pNW))9MMrx(PD!KGlljLnpUOQ@XN%i!KkzqhjaO{^<%qLJw$&Szzc=GrQNTsv8Xv1T?GH-2qmf8p0AL ziarOo#Rz-|{Syaktnc!9oi?KwKA7xGOli!@=)dY1{9^BEL2N*mb5+Oiy?2O*)}22O z?<;Eboc#^!bz1AR;QN|%;tGKBuOKIhyA7_^!!kU_uSpN6t@$>pp(~U<7n{(Ste5E> zsGBR#Sw6MsG3oExhR_RuNz5%vNJBcD$wBkg-n4)X>lbS%kJEULuUS}L>TiwF#79ik@H zKNiqVk+++D)4+XCH;df3nEW^#b8WC$%9S&iY0y;8e^*F#mQG<7LLbM%Yu9Sc%Y1vc z(Wr(}a22bzGt&E92I;%4R%e;#+%>|c%N|11x%>w20znYmPL+-dK|c}wqC%{N$JZG& zGf6~}DSCGtav2138mBLa{QgRQjZ%IzV3gEz9?^PwSoQsep8;{0@{{e^&zGa^%TMqc z>IX7eiglcVNqpFp@HvD4L_b&AL{8;&_WoM&c~@wg1348I$!MP@%8mT^aGh!*&j{TZ zlfCHOpVCl$LVDAm2lFlX2N3tTBcQvQ)JZCzsl*ul2&xk#%(1*xznQsyPArQ(sO!Df zg(?V|8e-%}x5}QVzY4DYQ?rw${MG06gxm-S`4k*uaU9ZWnGN(JrWGcIzPOz;1#RbO zb-R#XYWk%n&sa59i+45KX#BW9srA}I06d|)GY9tV-TYZ9AC+Amg5)nXwGA)4&qkJy zUFptEbc|~cNdRa}GVBIoMSToHmz@d^VfoNU**xDJ;At@!%J49&8;H0EkpR$)%3Sv) zz<2#j{VZC-*Q6&dqH|Iq;taMs6f>GVvmPxYcwz!%p$td3gqS)?^>lug51kmcI|eE? z=-QN*(3$-%0oM5LYZO`zNVjWc&1U{Epu2w$-dIqm`d$R-yl=D(x zeDym4!AO_I^NfG96Z!J4Zhbzse)p?yEadBtg2S!00;5$J6mj z4D=%9N*by9=Ius~o*%*KntCiIW5Wn3Q_h zh0AMzoewzY2v{3(#tNqp@<69PKqKG_e;tMbgwU%d&3r!(%}-|Z*9<7CzHr1RtVsa7 z73!w(Y;{(?C7@Hc)pNJa^B)W5vjc+2BqdKAE3s{HAMde00Hk*~2WOi|Xn@v`90nnF6o)K8Nf$k@nJSmvp|> zW;HeJ5G(!Un_n~rH7xnk2~(cG`xI@R>0}#z_8L??iZxy^4!(;I*>5nKskueUqF~O9+tLi~%B#zD$T*T@d$jPsl_3tb)^-Lw7#eH(d4v z03@Xf+v;oP<;-3P?|&e)&XwjyyM%{uMxRmAKa#b|#`Whc->MRcYLgo4<*>H>eyx(~ z(&%6)5V>fDbL%v1=iVyFCe0ZYciF&uT$|E-*6&rzcD|{Z8B^t3WTB~Sf+w)Et@n%I zOkGrg*wHJx*^bI~ppwi&p!NQDUsJzCTjXeaKb#Hp5_A%}JtAFG9V5T==3B-0<(#W3 zXP1Cqq2$(!oL0_1oV(6PxN6KhE>!CU2n^`(Ao)6`Uh)?iJ_!YHk^p(7bMMOHEsgY& z^=DD0VV9&1C*TmoW`4yLPus2+UJOfwb^fOK_(;C%m70aN=(yj{N7n zbVp;b&eP8V9Hpb43f2PsiHT=#h^ox1SL(M#sB4D`JR~HUx~>oF|Dq`Sz78@e6 zVz1h5kBRGOE|(8qj!bj~T>sS4j!}|1r2kEsY*~otz9T2qvon0^y4Lrx-tDDE2^JwW zvwg8^`s{<~Okx_Lr}Olx*8r?tp+x1q*2M75(yG3L)^(Ade$_K&_;LGcQvLNfu-iT|)_z@MjgdzWk3+qC zeG1pnlPoa#ItZNta%IFbKJGK-Ps98Is}u-#J8iE#|Ckw8uW_YqXSX+7n|+$MI~WD% z&YzVXFS8%i{>@_lq@udQDKjH!yNgcueDD*MF0oKfK-@;7%fQ&z=n*H%pgU<^K4;EN z7q1Qqd7)29Lnc87=slT8)6?qPdnRLI_xUrMZ2xO0CjNtqp{ALof46$F(Yd{ZjsR^f zl^Xh|`pJP+nT&Bl1<*Nvb%9LfyY~|WzPyk9kJO59ZZJBCc+R`GS9V_fQV_i$LoBcN zqv-tV`p@jZ@UqvdN}MWbqy991ByKM! z9mRuT5hcU&TKZm^gJ=nOZZtmRP^UkL1);p&#fv_#!jFEqUT?;EE;k+Y z$z2DVChudaJ7+pJ3>&&4WR-W@{e~N*FM`?o96gd$z1p)JNUU0&{|BE3k4dI4tdf&R zrw>QjN61$M{%N9rDY(DMH(WY*e0p#x+jsv;b*53t*q7?VgB*T`F+uGn zH`TA)B1_*!K7B2P7y)hJUTBa$^Eubj3=vS9EENLvvPbuD>&esgPUG`;v7vHOa; z(L)~@=Qq1Gx@{6dC!j!}tLb2-U*@oH$V&|274{di)c&H)oM`yfJXts>QqdBBP~Iox z{WtP|Ogokz9(+=-h^hNqLI%7I+VQOHN83! zRmOZJB$LRf8PSZrKEaY-tvYP}WK`i=sZltXxPCIc|7C=Cw=o~(93p-od4;yZrXVi^ z#@!h{nbsa-k_)=eW<2LW-2z=FRl7quGh0XXW7qaPmQ3M6=;glf&M~6(7TW82@7$r- z&>(O1m95s})6u80eM2=liWG_0#?`TZe`lMYpfc0?v#gkHafDW|L{$>pkDudO6ltHd zc#2$Fb=N+NcR4)0y!@t*imVM5Z>Y4s(p*wLe(RTK{95My<*fXT_pD9<2k3haDz?k( zq0xOwihBltZE_lssBLgZbbsy;R)r!WU84~0Fd{$UO8-jZ?oGBok$NBxf`q~sJu=eN z(Z5fs*I!^T(~$HVrR=?OXJ=7Skgl{2>-}&^{o4FYC3dJyBJADHI(zyD8%-1c$4lMt z!R5a0YlW2xyPZFaa(7__ofj<1-%a&>s>lb1fPYF%2mXoZE%_Fa>EZ$k@H3I=3~$FK zdL*NYoMJrxnDupj0R&kS6jU?!p45`U3hx>p3zWevw@eP~ou{ljhkabcpE%C)zI5)y zQ|a?(rJEkV;&SoH=?olu?{v<|!KL=8a;4pBkAY*u z+=%VC9{lJG>-l1K7uN+z6v&S~?tI;#2?lijTpJD^`dH0ELtOc9(WXeUFTa&28yCLm zBiwELZ0HocX16nQ+DW-apCW_(t-nM5?fx)Xik$^yCo4rKL7 zFsBDjskWxyM5U>4fUW{xV@TAnNgr_P|7C5}a5k+c!886k4cGuh&{+7a2VHx=-%A8(tG$P{@J3HB> zL+Zyb)m`-G`W&}!wbeIPWG%^gtsv9uEfs)t^&;sGv(G+i&+nz`1QTuU&uC6h`Jy>g zW>nf|^SORBYN@m~@;)eQzR3CJSOs;qn8;(6IU>)dJ{xmvscBvwfz4TX0I||FB~xWy z1KL}!g3q^oQKp^G`^+{G_?g3B!oCQg4@by~1Now)KhXEaUbV(I+cvf7APB54f1bL- zWm;c?vkY!${9ZWSNR>=TvhMq|i_}i{?HQg*pi`CZObopYcBNW$J+UN8FZPwm^w~wJ zFU>R6M}^DyNS_bZmnd~CFD*S-ri(F{YxZDBVRfy;wq^Y^T%frLU*<+~TO7T72U)b` zxh-d2)~O29Ru}^;gzw`v*Vn1q^3H1%9xtz3dj|v_(lgq|ypoaabeBwobX0uwYa+;< zMadCX9N=-dyHgjR{AqKjGJD$xUssS|!qg=89+6&Q{kgU=0}42O-MM@bg~FTYwy3`A zrqj(Mg+W9W;Z)SD;>pbb7p7W6Q(3DpR zuO<*Ge2auRwc!rCxw@Lu(|3{k&7-xbOt1(XF&=l9 zwwBf|YBsNvi==M&wM6+~oiUUPDL7O_3MIpau5!RuJ=SF8KJ=f0gpZK0AO&NE245*ZZ5{Her&s zHP@10X0gR#7&s-&^+hPI#>ItJW5fQLB|72K^-|6<*jn+1*_^1`)7>Hr?Oe>HssF)6 z%}e>1JGt?(=*M^Il9|x&tp;1hS{dW@-juv{-H4|Zzg(IvsU+#a>SjuRDzaWtaaCG- z-MI)b%4`LJ<-3NzA!%w&RX(O4f>SiRbF-_|7=%{~M?4A3b$&sl)UXo8?UZLs{fX*c zqk_|KpKCGke_@ZaGB*_J^qD4gTGGF+fLe|ZHA^5n83t;Ra&LA;L@SZ}0PP zcq>4d5GEWDTfdEZ7JB*b&@#CH*d6+}oPD7w03MxqLI7K)UBp{MuWaJ>dg%4Jm|=dD zJeG8y)}rIa)vg-asu}Z&-cP^#@Img>k^s;n7$xiWJ!}aYYjg53sd4_0Z2W~xNbR{; z)sT7)+CygHNa#+*G5s+T_**c|z5GWM%#Q$0rWRF6>&!&pyq8un8-C3Dze2P4z@*fe z;W`noo0plYE2$$dWHX>P^1D~~khVIakNQEd0RcIm;WPV?hT+5HiYVo)RWT;NQ-9l- zZkTty!+F0KY@K99Diqg-jzLzIpUa$ ztYDS9)<^n}m$~o$y}}2k62dJeT+MRq>>=t-lP3+*`1g%_Cde63oDxd_v72C=Q>Nh2 zp`#7A&F9VxcbXe6_Avj-Ks$o6ncTZU z$S<|eftouBDgC0wLxp{uG~MlJ0b!etAu#~S>&u6pXU`(+70)VGZE9?qsijdHJzIBv{ zA7gVp@~|plYB4xi1D`!;PnSNv>-P?$wG4069SY8}a*Xl3;!%2mYPRtxcnW*bgd8u@ zVyITNL%gdx@Y;>~>61M}dB;-wYfFBWWq9{(V!M}!UG7PPH8%+#(Vd|pB8StK+Y@rzj8e`k{*m`nm-kp*_Qf-O38;Pa%58L>`}*TnOF- z|4B7x)&zaQ8b{w)^={M~FxY%6`kqoiBB(P<#lJ+Wue_CR^3=$3e?-blf9rQ0(Ma5X zqoRDq2nsL3qE2(>M9KL|-B)4k%ulFtJj&0r{_IHR%M{jyFTF!Lzj7;%$Q@V=w)>MC zK`|ZEk>x^gIsAQgnR#D^#1@&6T(6NnW}C3Ty`(k1nFv(>vGa=z>#Ie;Snc2;39@fx zzQi5nkoQY)M4k06E5GOm_Tc8+#pOfN`AhZ8&i-r)*Zwi)fugSjuPxlDy=%is_aHOT^0|TnmP|^TVBRFVX#JEms*~=F@KihqAGxU_yj! zl4T{n-A9(#NY^vkMWW3e|ITAX>wquQD(h-FS(*~J1iQ4^z&E=uC{cE6hv;po*FGqN z_~rA^N9&Y>q&!m)G|MOTkg$`LBb^&vSKe zeW%rFL+Whw5BbVdm+@$(9T()U8l)0q;>Lh=-&lH_tD?=<>*2;Xr)%_Pg)eJL`@(Kd zFpCP24vZCn@{jPy^IH4~NSA2d5H4Hbf~{#}+;Xa!eBB$4?Y5$^F;KVbLBW$wKs zbqdE82fM>x%dox}0H!-#ZUm|BkKb3cbbEWmW6i%!4_6r9{*u|d5;5NY#UWDtLQpWJ zoLXt%t%KhyFWDRGLVd9+9tsC@9>7_YetH2-0+9cI^sm!Qy=prF1$X<7I`AL`18y~M z5G~;Tw%o?c3!{(*bxByX)VjjDZ6|R8`25K<^Ykg zYr8Slhd(Ko9k>z=#pPmpubSNZUD+3BujEdJ`d!4zyCti|%S2E{Z~v5?nI%qy;)G$J zs#y4MTc-?*Xy=&_n9)ObFDqELN0WYA(pD$Y)+q;R5@8P1&8m9Ry|d;nNbY_b)8H;? zO`=d6@V2l0Nc3s?3**%;?UxUkA920wP1jcrDX$+SdnGoTB^zaQ0+4WiI74Qp)ps_; z(aU*uUC2f|B`$=!8(Nyio5o{A#KgK5REz;^fXjaasNC@{c51Nv?tixrJS93WHZMUA2V_uZQS8o@gPB z7V-Gf9MU1P8n1Km8_`RzLmi~-!UdyO`R#K>l@|9NrDOrjM>N;)vKOjlYFOnYnwwg7 zq&+Fhy26*H9y6Qzk#-o%Nm}+!_{Y9z*(a(yK`}h&2U@$|i>)6qn*O*>YxO3Nc=%bG z2piRJUi%#(e|R7ZRqxcZI`y(6-xNCwTMPH|q~AN_3eFAD?s&T|Q1wN<2;n<8wkYmr zvWj~51I-HV_iSHUbGMLvmJ#wny2SGQ8n4I5|^olvKIzr?C-|*>S|Fixaxb{{7tO=`3CKIv76X|9OCGA>qBSMGnL3 z&Vu4Muc%TVbFr7`-`5|sQGfNAOOt{=9UXg(3LUT1o2~V!IyUt?!C-(z*T<{7hfNb} z>)jJCjaooP*K4=&*RfN(!-)!PGU%ncJ8t_}f{?c?@3TEW8 zfRJvv`1}scxa>Cc?#?Z4mX!HIoR;Ko-V|YS$P>DLMSoH`;10D}H zpz15MHzadcHfYgc0ux;1r6Q+v(#5#|EwMF{>^z|v8AD`;?oJwb@X(QnT zL7Z-Y;)^?X*EZwm=GT>9=t^nnv7E5C8U(nRikx-FP}dHsR(@cj1$?xpQhNZ}Idx-`BZXcmot16B$lDv2wIU zt!c{KJaH0xQMSg;{zLazILdw|jyO*b(E;y$Jz6mA4uvTdcg8iG`j86;vD7(9K+YOY zAnAQzUGNiZ;srevw0Qcm-!vTV4weFB_w>S72-!hTZ>%7ws%a;3oDqT&U0K18-b1n8 z{4tR@+2Z+Bg?*ckRvC`D!tKN%w0+21hRWte9S8Ycg? zTPgXV#=AV*EeL3+Z6`2EYGAhd3M~G|o02D(J%`ze4L|i8I{;oko;`dG$?UnjEdee% z3Wg--l2Q0-S)W#ijJdAY2aOldh1oAw&jV0KItUYx)3ls;nDZ!Ndb1RCN-4dH%s+9? z2i??-I-#b*;tRFUJL9_SkOJ#sU5T`}DU}tYD?0~MyR;gw0N9740{bxh6Ac0lATo&~ zCl)t)5=Q}VisgfqmEH=C;mg}hYs*03>2co*Yz5mYy^W`+tEOw* z8U|`n(j7XE^iZe}WF+sAIiIln97Xb25x(`hvEr-Y*ofgr3J17rTL?=)?D{J=kASIw zhF)p2a3HE_=tK*$d;7zr>pc}d>kb2&k9X~9BfG`aqZ2(isB1bho_MFP4TEuxK^mj#n5_Y zIQzzO!Qcto*7YO6wMSWJEM!iiE);UEQyMtn!Hb=pmv|cgP7qx^U?Z77#v3 zgw~?bgS(ueD;lLAk&=MI9{o#5_7yD#Qx2P-Q8?K&P&D&NeA?wE_v;AY<{J!7Pw(k=DrID^_3Hxrz#u>ip z7r-R55m$0b`uzRu&MQZye{cI>?Jn7->-rZD82B%lxD|@IhSnhmFK#2&QNn8rp@tpn zn3s^VFJnU$Dqe@RjQ>D+fHcGCcYAR3`Q9US-6ozuwf9y;B3dN!bYqgROf2Gv?la?oZ+G(8KW~u{*Tknur7Ivki3YfiNxu zvV=b7#Noo`4?@1Q4zBJAhhMf;%waM)d*pcHJv6~tJF>BGMy;{xu6kRYp6j>A($>gl zU@7RivqKf;jJ85D|2ydAs_2%_z2RWfU^ye~%7Iq;joOr+gQ4`e^y%Ty9;Gst|0%bS zU0bvG+ne@h*5;hGhw`5i$KO;;uAkX+tO}2b5jnyy-Tx~k0tv4`UC(cuLsLYLHb1P# zVzi8~rt)#Xv_$52B0*8#&)_K#ldjvz)tzqZR0W1~k`Dtlm1!;I$mJ76@pXPh>D#$z z>|+2_SyrN4IL-rWsM*-V$z_i=mEV2O@@tC(Xr)eZca`*%p&y+9!&7^(ZtPIMVF4Pf zDY_BI=Pk8-5&r8maUb!~1mxPjd0l-GB%_csOgrA+TZ~$VmVmah)U1#Og*WkHJ>-{7 z)>b`_vM!D6Q&1nYiX_nrC$=)a^mR)BgNL6=!AdvIO}~Qj=6{ud-%ZM;wEq6;jdXfW z0U+j~^-&~qcoK8Is6_pD$cAX-4GH)G02%|*nFwzalx(%uZ zZlW3_cs}2A*jh9QLDB!A~aM@gk|ht{}@$GR-rU0dLvk=KaugF0ty zCjgPm+-eO;x9kbrEzh=ASL?wc7{fmY?Q|aH1d8KBE;ZnKA40NEZqq>P=$5+g*nTO| zD-F{1F~Dols~?BL*mL_aC(K!$J5b!)gx*h259)K%*0VQl;C<6u`0ZDSd9d6yNNYXx z)(muUB8l5;@%Sjo>!AgTx|!zF;5jecNLa<{TV*$9(C8g4)4CSsRQ`-N3P7jotFpvzcrisv z7LV95BbmiL%*YEXtN44#0eH@W;=+V&=NM6Uw>O6MbMpk%i26i?qV73ia3u!Ja(_fDFLNZDGh5KHvn15MCQD+l+jBv-$k@hC=k# z!BY$-A}pqmv#+8W+h@^M#TK-EywNIlrBk!K<>AfhdV`rV?|J9UD(b+|kau5Mcj)!! zcBYpF?MxWaG|n6!rp%rY?r5=&fiV|F$$7ZmO)lEv8g+Xb1LJ(EY(LzNKtQYGf`l2Ab0Xbm(9OQ`dFlbb< z^La}QpgiNU#vXVc)#&DNhkiVfjtXdiyfLpIlS=7}9exfi6gw;XpvY=9TYECX@LJh_l zc{JYTuc?zjVcRF~f#>4|6^Ck5AGSmd{8w_yWMjY$2;Lfsd}~}&0I4P!y{3{nOzgh( z4RKRh9d(MkYO^DCw*vpGSHzZ??O35nJLUUK6sh_lZ{rfC&v^X)|6AB05|@#idSA$|#1HlVEGxL;+>kp^2dF?R#<`v)fH?BB2P5 zX{&9B3)bqgqJCH5z-p?fPtP5g)$=XZ&W^6{VkR>%e1H}djOfJn&r7XetcLoF7G^`R ze|DH57X<}skn;;}T-0k>GD4}pTI<{42qRX}VkVbJE@bR?IR#_XBu78SpZ+=HDDa;j;&k_7Z9;DU`^w zq<3Vhm6%-%g1NTeQRa!<)Kc7% z*r0nd1txzw9S{)sS*K8(mIZSg0)n;eOq`@y2EjrJlAHjTqI~EnK1ewSk4elwtDBkp z<|i$n6DezrDkz}sF+tV8vRD(qEIfsXbH3z!nHU5Sn+nj?U3^^NRYm zu?k)j>X=qMWid{V2sz(yT6b00!F10QTI0TZCI3t(w>fHz5w==V)BZiW((LB2Kk1p3 zXC8errm%D&tBb-jW%1tppiSQ zp$A|oYn*$X>)MUDhkN)l`En#LWP_QHw8BGTyFeKLD*;Z0DxwJEuR~x>s-?zrkyH_+ z;qZ{Hq1S)|aF{zPe|M#tU*#|RhO%$&45VK#|-H$5+2D~&8@<{VH3T>g98jjoc*Lx z8%&=aIy2f+wstV~)y%&W!)^kuT7K;k2CXIN-&Di)798Izp8GVaNaUN->(~DGi`T4Q zlHq-YvJ&S$Q{e#W+aC6p6SqURQWU@M&aM<2^WP63?u_| zWoJEuQwSTIZVQ{xEA?=ftaaF`(+!?%s|kIJD%Vn=q#qTZqHPQ9RqH90TceQmpMm21 zaL;hsYE&UFag zfnjP3mx*i}tTV}}OgO1oMJztSgNcyCv zAA_PJ#hQ;(N2CkHAQPq^5>&(mui~E&CDcc0F3X&D_}|91{W}ue!(9a^R3gtku7LxB z{3cwkcr?jBcYF5Fb^@SN;A+=j<2HL;4uLc=7miefC#t6P)L>PD4 zUcccgTE0m_Mah*lS_dFrARysqx(FxenZ{T^ck$?O%N;5?CJ3F;Dt?b0=24jIy1lO# zDs=Q$wtHGOkF7CG2m3AK2I=+6=8aQHno9ZsA8Q+i()U!Xsr2oAsz7R+gd}oe`;8*i zn;>+{syx-H<~#ut!+naB8jV<4JQrpTcMSep@0-Q-;&f$}B8|>n-P;k_=+!NO#URA; zi3IcnB0q&Ll3rW=K#8F&%XQD_>talNcX~D45Tr2!$@+=vTko6(_M13ef_E~zYk`b#0;a5`r;hx`-Otfl zgnSIx?j&AFIm)|;T|>V?71QboOl|PQ=?;Ot+R&?Xs3kpLb0x_&OPT( z-RhJzT_xyu`^QR3a~n)e5~Tc=N34=m*&0~x`=N8G_RXj)4>~y}ANi;>UtAKZnQK+* z181~C-u)Ztm?Fr0>2vI2e)4QS=0dZm<9_`{@ozN?mWe~)@B2!Jzf3{3B8N)pbEybq z%xnJ*`t3W^khgvX153kqA@hx@|M)q6F1<@`G_I?Rg0$bGp-pvD2ZmCmDi!sP0csV5 zc0%7Ayu_6#+OCJdHJN*I>PXlbxT7ociN%IXo@`#M!^{@`J3;Z}r%EmqvUkBW1Hl70 zSewEO`W^{A_5Wo7q=3%V5y2UK{?ca-Vw?%AsHBTA_md#ub^WLu+>_}M^wcj6_Q6}( z$JCj}-$d>k>D5Nkm@Ls%s6HNJ)UZ7lgUXFt;cp$N>f5!ozqb+|lrT66w`_9~=s>bh zo(RoFxGER|4e+kcOT0yKJ}H)aP#V$y^6M%WubhKQiN-f7}*k63>RZ`mL7 zg)hY_tcA|0Da^?^cPB|y3v{Ow$feJ1IaRbE3#J&lThIF`U)nkx+#f&8@(*#y0}HyD z_-D6Uf8RMucoH@ofMktljwZqXO!q9SKZ0Lx)htHpoI7o}T-c4AvF5-1z!G=@m#f%@ zj{iBtU-sX^E==Jbw?kkF!1#&GUlVxvYt1LtnD1%@0a~DWB>E)W0C5QjYJ%W?`J@k&d*;rU9{=LdLy$ifMt;x&alsaY&v z63`ZlCV9>W4!*CxTqPf-#Xf9kj5!x|{n-XXHFZzXMR*TO#oT2gu3It@3=aCu$otCn zwaS0L1JPn*&1$n@qB+lnG* zo&CeKoV?!#PFhne%Z*nBU4M_m*Vv_PnxnVKUcX5osw}yukm(`ZV#6eV9Z2Jki2Ay4 zR}w5u@V=v6C@n29)!x7~T2=JqM1^cD-^BAb*q zaZ=XWqQ3@o(9rivN8c$o{NPe_o=p#Kigd-(1^=9}<;6WwX_IQ%RJ5@wP{m^a2O!B7 zSnv^qk@px|1)0=!^tlcp;L>axk8LJ&W=H12edoVE7GvdVIA03w z3>*?n5J~8&OBp3AhfGjUp4H!Tb!J|^rzgqP9Ay*NKiM($Th;+f;I0n8>9mv5leh&C zSbTlBR;i(Ngx5d$yS`aK=|?ocy}{i+9WU=-eU>BTqna?&2gLZzXB~I8X$10!YQDKJ z^O&EAlH=2(FDlXfH>6Of3$~J7 zk+yF2FbgD`o#112QQq}vd#m%AJUa0;^*QaJbf0G^(mtuZiN|SlWzw8TBP2<*0GQp& z=6h~?UI(5d%YZSWPZlAO*q)9OWy4-`eE#>5{3T-)qN_{ZkEh+|YSGev$!rj6nBbGj zTK=_Z%k-<0dYKUvGb5kM)!s_CXvY)8!dO|GN`VOZYX25H52_3Iu7ZiVoUT}uw|~PK?iQQjRGj|Cv4zS4=bEKL z38--|6GXfLFJPE`kcBOShU$sAzB2R=i_A^={B9VanBz(lbGroP5AdA#%sT$Bc7vFZ z-0Z1Hf`7%d&j5fmZ{cpvXgIrLoH*T}B;qDYHe|C|pG9!~pG*7eOlh;!i>(EQI@sQ) z-Vc3O6Vj?ByC9Q%r}&o#-zYk-!VjuH+dyf>e5FyCsC1`Gt!^kXPz&?NcXHbUak}69 zP!kBo)R~taH`+9{892>23vP0%^3!Hq(coK79V$K>v$PfnKK>C*3`lmFOb~3#5oR+k zA@|hrHy!lGI;uSSUn#7>iqhM@**gh5u^_QkKX12>H+Npx-qyc4&HX2c#`Axaa;?z2 z|0mB%_z3=W1Af%_CP=;D_XDKde7QTH!g97s>j%tlcLoW_Y~|gCQdetRv$mo!WvBvv zc`7_TOw0e4AV!JuI=Lgh4M-&Nc}*iKlBn3XB&lKHGTt9N|NR^tjc>l)1K2KaYP#6|=o5Ui zBZLDD!%1-1G_SY}esY#`IHC8n1`j*fTY1T8BUK?4>_r3ATbUpRZKwwam0CF;Fy_3| z@@R1~GT{5^{<_FxhJ+j90%)>)&14^gPGl}T#pAB4KU+i77XNMM9(ZoJH9v1;dzHA4 zN$Vz6J4JVcqihXVq;x)Z9xN6J40gSVKBlD-d0_B@N9TuJKO9Od-(p^1VsHcTY+PranjtGY zEjV1m;UxlFAmv2f>${wapZ9#P_73 zl;tn@C?$uvwmfD$bJ~us*?6st_BTCrflz6X(FVl7>^~Ur$aCQ!feZdpJTLJRBsI;+ zzUlD;gwM-gKd0+h&gbpUY_>VDG$JV)2Gu*2i3t`^D@f zo7eN0be4CQ`{&`tSOKFPmH@-k9)-YjQn+}41d~wIFd=S)LM+^GNvPr7*zEzV8(wn^ z#^Ho`#F=6Jc>V}@EQw5hc$)<2ldJ5M3nHIG4_GEqLpsdJ?hVY{D&yvHY!u8{FVosz z$_>H9&_A3b6r@kbE(2yO&Jm@Ip^rCe)fOvrU_{Jpw|4WUp-<)LYzIV3(`h>0QLg+T z91a&-qrEwX>iG@O8xWQr0)>nmk~q$iCdzAoKT|ST$oHpbXBdhbCLaidFo?8dA8R+M zn_Q|;)PF(XL1w?q6~_~OsCd+RNPbZ6IsOVlfBF^BFuZ>hNI^*8-9X5^Eq(7*rcc4V z#1jfPEUYR@9y~NtjrewF^Tu(tLkX@odLGuj02Q2cQWm0QowBfVDX2ecd`qWpFpaj| z&+Uy#hw@AC1{);^X=lBcIntzQqylkKCu@DiKKgQ^P$jBOlxG375~FcE9wEqAZEw5l zQF1z@b6i*TNu=Xr+GjDnO#{s^hHdVPXxX(y-k!Db6fL^uDrdzVcrL7BtbPu5Iw1$E zJS3Tu%+w@vvpFk=uc_HBP z{Zi0Id#ZtPNgrinIY-u=4$I$J(g3^0b*%VqlhcPVHuntCz53C#^@|ScuZMkUI6YpSp6GbNO zz{8Qqt@0Xoljb;lrZ5Zg3f)@i6w^-IZM3%A@`zOY1PF$S-y%2!8OF5@;f5$hX z&#nK&Nd;jVZwu%jaTuDyd>%3yyFRX_JjL%v2Q+3-K@cRmrbU(~zbr=#zVO&M_;t4y z^MCe#Aavth`~`y&^zOK|c(uNwH-kIOY^Ql#c5jP-c5cPiqGLb@U&K7A1ks_m&lzq0 zj(t$niqYT$#3^y%x@UlsAoh+3QY@-iGqLx<=-hurLseT%k7e<|G*`u2?wT5JuXK^E>< zTrPO-IRE@fWjx|?&Q<(K{cAwTNVfdll$v25DH#VN-&qz~&4wiDcAQ)dLp*}ePFZ@F zs-y(ZOr`lz8_ZjP5`|C5!RY^N8lKh(K~-aiEfP1p(ftA=QBKtrY!LOL`qq^_xLWCI zbx9{i8m=jHu%cJ>qDPkK?lPm{(mqxc#@4#@$RRC>gURw2^7z^r4*~%DqAMH#Q>@Xo zbd9>1RlHl#vwQb=gJ=4@q})NYfbB+4{`c&r@;@3Y)>H|iD;il)D8$@GOvl1u{B@J+ zc#xvl9;^=8cC#8?1FRudm6Q1Xz`wF5F3u!^nIv?T(3_FDp5G|hbghx8LL#9W5t86w z;Bfsy!q0;h=&jkgE4#+#l9J$9ey8tkTTe$8`P^l zY&8|{pgzm_=XNSI>^$!YNnk{FksUo(8D=H8pk^Q(Lm%{$K|q~$hn>G^^)MRcNqY_} z1@)dbcO8BArPND%7F8PATyDmGVQ-t4~LXG~+irhl; z^FN%$3e=9uXa6=bY5!Py+IW~lJ73^kooZWByEWn&nM2dp+Z&Z$%{Zwl@4t}PYKvrz zkq3pFlmG7ce!tS(77YkF`28`+wnPz$VxDz{kej|~?W7>i`o^xXFkiW`+Oyc`@d4Mc`QBURgc}RE22v&dl+qQ?-Awn{v%QBG zqd#;c4`amwyJt5lJMcHnx>Gb{R_Cm&o1*Y7w1P5?6y&wH`*YHRb0Xw*>Nm?XnqOcI zjQ?w{N_nA9yX@LF56LFdhk_N>29h}ERCxT3%5ZuF|5kDM)yhwS*Hs9AP>UkG%bC^M zN}Q{5o_AGgpQN$6XlN+%W&!kKnPpRIMEdotNG?jkFkb35H2M2DKv_o^pQGyMI%QQ7 z)wB*?ysy~di(}07Ag4Y9n5jWmXt?1i;janVifksRG`1V1-|+?o%`){lglFoU`r;+7 zeCx?Jo+5Ay#0a7}oq^_A2N<=o8wUwlzx*18@5f%1*f0|$aGtef)(?IN=4La9NRZ9N ziT)^r_{)n<@NT6+%BTg!TOvn2MiD$W3h(q&4t{bq*8(weHaeHgq~K;!40=y);4f^E z6ULe1mh}+^^BfoO-t$@+W9TgN8)qAg z$@j#!<_Hsp5_#;3nS2JWrV@7qd<>;EsZngJ8xH6jcT|gGQI9%&`lKUrTAFq`BJ9nY z^v1ABdG~`Pkn)!gr6`K`mHWW2X`YCo+%TWSbk-^Wut>kcBn!@sXk9Cv#{Ck!7=FXz zErU3X@scZm{XQ}gP6S!UTFNZEG80pXtA6^(DdN2+(oBpKC4%^3M<72l_|HAl9P#&+ z1uCld+Nw9H!)QOIDk{~zq~Jw6$fv6U(T73pf)k7ys{4O+Iv$w5mycqv>47@hMqZeq zwLt%kt_H)u!%rYGV|;Y8n64OcII%2{oTDV7`v`*=Xs5o9lhJPMLyPur`3@J!)PXQxfe1t6_;iObCE;w9wjJ#&0@^TIHM>58K$!@1By&w$cJ2a-6tyh=nYkx>TeKh>mc{QM)(yV5=-k6OjuGkqR>`c5EaWpRbgFQ^MPHTK~ltA;wTP<*7>iDKH+ zC99(iGbE}W#4lVP+(gCOC=a&Mz?ZvdmC2@<0XH?WK?8AKyOKFnMoRUIBXFgNkbnW+ zi;#;=DDeO)ZVwsyS1=s2g2~rlE1;7~XEQg*QWHu#OL?F_cN%oVI04b^SvfBHpqO>&UeBF8RQKxKlWJy*?n3_Yi@m`DDY ztGo9dya}OIS>M{A--Dt?olG;bD|GBIFovP#`Xq%W(t?JP3fOlryd5`U&#ncZvTF4 z%5M)e$L9oFZ6d`{8E0@jWHdvX!Bm9`OM(u#*z~x`xOByx-)4V2ZUOwae0#&Y*6m3S z0TO|7=&660{d)bLWD6C!nD3ZEF#XJV*#CSL<@7({`q57JD3LnowQbK-2uoo!m5k2Ewg`$}D? z5*=MNd(QDU>b;Vp{R(&tr$NsDjd^k+1U;1}-bQg<&m`azF}X6!r@iDfZa9tSu3N%0 zrOcI)^<&|Wisibba)z$+^aflPHU(v-)klR;uDV+miPXx)KRRLXDO6lg!wo*kSkuJw z?^y(wodom!j{Lf5@%!&`T5L62NPf7oToq@B*88yx8VxqxM-MafJ7$s66}>c0rDq{I z%^CA)CWhK1n^|jBQ`KGV&6?6OjH=_iKgT37$NXDr(p5Iz9xfjLvd#=q+9M@Ay_@GY zT=kH}r^tTz_i$Q!5<4RxU&@y3qU~E~D{@fl(SWi2yOOZ-?8%>?Jxo@Q9r|0o-1cCW_^;QtH$VZB3Eb69UpO2$<)8YfW?BnntWXm85U+L5r|r;mHpwx2 zjm?L!ZXsAwvfiv=F*(^E3}@h9AZ3`iSsj=x8+G7KOkof9eTq9ZCg73d~I^ zAnqdfVk2If<;hgiOakFt1n@(puu%sszK!N7=p`n={*lwXwHCI*w~u;Ph;%at%FboEGSd*6H-K!@i%$VV~X;b;mmENZd&%M<* zW+s|X`E_ftQ!bZ<9yxG~rY4B#bL4NlvIIQ#+Hy52Asu(5#+r5D+wlyR9}u5DQHpmaSH1$QK%LPc0b4tI zA6D&8&1{x5$+J5wTll(7*V;!)a=d*2btlYlgi$Z>qP8wUk$8CS4Hva~DM= zQbaqF$|E!weX8hm-YpuPG_^hEv*j6<;yIr0nvqsq7CW<-nkT=ggPF3htIS<~qTkXR zp!6#|tZ1!sp$pu&Q!C;{A^f12I3g&bL4^Ng=8~Kn$oe9j_TIXP{ZXrCbuJ1EU4KTnm>BvG1`hlR$79II&@Cqh*&PNfl)>;$__wHVP)2k%mdpB z?l4kzrn7KQ9zm&^fw=hS= z#X9DmH~-NRu^*7#eH;P45@Rr&pd}n7=c4BXLAQ1_Oy%Wi`qX>C}fJ-GSbLV+ErlYso;t zU*^x-A0&{-hBeaY5lqI61t`%ZG{7gDB3CX-?K1|yZ*!VeED(5G57e(C=Y`fO$gbZL zgy?4yC?kC$E@m1ee4*yDM3?k9>W^eHku#@pi4+P7os%D#Z6-3o3PAo24Vw9+&U)6$ z0HeVb5ODoLHym^!q zb^3CrewqN~pJB3(6JXlZY(-GFyKu$W`Zn09HS@wN>popBvkU(;Qa#K2J<_I74fktE zXMufjv$cu29qJkf)>m=PjZ_GmH=M(S5aba*#Ja)ncq9mHo&s_wA{~6+N%# z2uN6|Qmm=K2!4#s?fPcp(OUmCeJi9t}VMX);1A8N_ft zoa!T)sl~yPK~xYCP&h-!)oYY^)=z5xaK9075YVmamXSsDcAATt>1P;r9X7xVvqxkk z7{M2jTG;iks9AV~<$}mUCO6t*4#_Hf+LCA;`l~2DYZh2HYR(Vo#>5)JO5L*Hk-C+6 zs{iAus<7lVDnY}m;_#Ri%-(5EhOZ5G-$~#>JnKHG3T24{!rog0a4M}khxw{geJ8%$ zQnb5teqWMnegJB2)Z0@s@}++2N zkwqG&l<1FREg-1oEP(`II7lL|Ck8zFs@gjF(&2rFE{{s;kK8Gvt`yyn{q7zV1Oa6r zNYzVK$@0&N6Ozi@_JB|`$~eL#rap!aSz1;U?FNI9qi80<=@@e88Vn1YO#x74K-!cP z&0D#cSo@!Z#uZB2?4)w_%Mro?S3|eT$Yg(-zXKi0L=R)!taDar40DN_gl{dilJvz0 z$yMQ}&Jgg#tmsAIs(EP_Vmga=l|{KvExndbt_#c7^mg|Iifv=nzGq?57oMMfCPAzkN2 zkdNvcaJ*KFpYv(|W#jJJ4VlbgAi9M<-^wzDV_ugZzC4%>VwIG!iT%_Wf7LvHoU>%0 z(e{;5Q{m3@Aqq5)<<}=jNOsOt3fNJ!q-QV5xLEnAeI}D=KoOoO%;(VvlWLXL_6A$#C)Up%=kk*K-|Eu_v=70yMYts zipaSW21iM$$U*g_Lo$RK@%QO587538v<$`o4idx&vXY#W!LZd-x}w1nyX)g@o6%pTzC}%v)EPd}d7hT8@F{)O z2mIsPh2n~{9EH(Dl5>X%emmo44d+InmMaGlpbKAK(ONsVv(zp+tdc7HxZ>$BHmOzO zy*fu0XwqWAD!as4p@<63y`wjW>r3?d#Sq=|wd&?+_!F&oQUVbVRz&gH+O z!HK$G4~dP5%cW~Vq^#G}7-XcnIGwOj;dyvy= z7xne;b3TTH=&Z)UA2WH_uKAvirvZxt8L?)Pm9ALgH%(hmopb1Ngx})tzq^TkYjg4>>7$y5Hv z`MHR{YvgpQr}qmKs_CS12j~f+csz@!kQ=m4|sdQ&`YtYqpAfjQ6-WieGazi}c=g<2ZHm#4x zfuN^dEof$Kj zH6FNI;^NE`Sf!ohI|w4Nf-|$lWiKVpv%#0Bm0SJr!1G>>B#phfFvQ+=SmOT}(jAA# zW2^NkSn&W_SwEc@JKvosrr06Mh@j!IYFEi!(F6N^~ zk)T7!M5fZ*?go~27yomcI)Gk1BGo~>ioN{U)}KDiD8~b=K)ja47Lsgnni7Z^rk~of zA=x+QXj+*B#eoxk|1KLH&CDHWAx~|!+}7DOf0}%@7)F2-9>#N3r|!Y>H_V=_N}^z) zSfvl(F|`kr*jC=tND<>35u~~sw-umL@ok!Js%5ERAg!%`%SnhUrA(k#Dcz_;)roLk zXN_WF9-^}9x(S{70CxWUdbOTue&`kti20N{F$_jz>v0We*TIaxHlevz=zw1l~h^vezI71!dQVPL5;e@945nl6(D zEk*hHAw?V7(9WPdn_xkhHdm|qWK`=0D++}<{W__~hzA{iw9}>Wyp_0Y8_H{?v@3O& z5XA25h9oQXa4sH@9Rh|VvT!iWt=S?l0xx-~sfvHsREt{gKbPjM&7z8XiFYl5`^ZVT zjq%>G{2Yq=73}$f;6mJn152mP(JqpS1|?OA#ZKZF*m-l^UQI*Rz|>Gm=nzqdr)Yjx zeTy4bW?Sc9eEPlTk_y;-2RD%)&0cSCfZaYeFWoVF{O$0#(+-G&-}tw6Nr=ZIj5_Qj z&66IlVN~@px}bGoc;|mPA%?bUn(v+yt4fZfpGJ)E-YRoJfLyrt2lq8}Y;>+cZilFR z0RVUjY<9oaC|yMN6SU!J4lEI1u?h383wYEOHVECGGi)*cvigjazc$Z%pk%x-6ip2dc8D+Be(YbkekZDW?42k-uLFkz=MAp| zC;S_Q#KV!_x4zX##3f`o-n~CDw9tXnh4k6~8rSmR-2AYe!{>$Vof8)fFM0d@spQb# z^1+C29m)mt8pcf|?*s__5#lSEv@oW@S3Iwv?ZOYi;awsv4V(8QQTyC>VM87{VvMzg zQKB^GxECIbqAPau1*xXjmEID{~3g@L~GR| z3v=T+{+4!ph2&jYB03()$7FS3Y`X@>>$@?dcAQe~8%~Hp(h9O_;GR7Pe;^SEtsUq? zt*3*qT8xeo^n{&$8zl{S&P>D`=RaxEXo@1cB%K@;h!hI$1zU7AE#Qdfj}}rC5sDjR z-OCz+S)3#~;9M_jeo*H)PoU}k$wbE`jdak4hI6l49_eO}HSIUpGo_1v7Nr*XcvB!^ zjnXklIcNqRir^A$jxJowZ`|SEUFh;HE&ms|6Sb3R? zYlPlt<@qxSvJt_lranF015Z~VKTiT9pk!w3{oN?(S^_sE@}xQy=8}B^6U8+#kWd(X z|D}x-J{mM5YFNMpeg;#rr`y0&z2NeI8(B#c)W*vX^-wa<=D?tX7JcEp*gB!eIQhReByo^TVqOViVAm3 zIy8?w1J@BgW1;2;>m$zF_v&7^6>Ai-Ct(27o6SMN-O8YUicB*1>V*T^j`(E$H82T< z3+jmEjr!R=+Qx-XDnl~9Z%$+Pkph|-lGMqo(9(qi^(zq6QRnLU@Ldr92qDmpU(>WT zhYG>mNR{7FGn$yBm!pkv?g^)C(QpgJ z4WBi`FC%Z1niSv&)j9*zdrY5933b#`v%EKCFGLuU3oakLrA-?ZUIt?4bF)Dhe+3rsSK-s|+8q6JA*j=0sdbhL^XDEh(-7?x7yaCM8M#ABY(k?I-M-Q)K`3qInbMM|`$Id0b6CVj zTO~gBBFrvzS#^cxNM6C=Kx)!LUstLXDP9aYbZAek?n-*Mv*SZMv3)H%!j0p5>E~S$ z_>gPCd2Ibfa%*Aly}Q5FKk)pSr0?`}bNb7(7pH1f?KGj@o(RK<+;Lm6pK)vuxbST# zy*sePb0N8L%bdYtFdSh{xo zShybqi;CR%AsuzvXCQrR^QI+ujChq+*s5A~d^%9{+c_67lTDzV);<4ZG#x$XotiMH zydt&mNl$?M|)mSYZKdAf(t5Kr0er=Y$Z=(Gq8T%2QD*AS#>b}Y%@T$ zahm5Zp%>q9>Xdi{9MNBq2{uB`>i@X7&QQCUu`s7*hAq!_1_MoI{4xc8+r>5*91^LA zmfEg)Fxsq`D3^i6YO>YK89QaW7yz@cyubu^V0Pf~Jqgg@pb`nB0sj|H{EWLxd8gbJ zh>FS&j|jsFZ2D&K6>R-v4&h&kk)P*%kn=TwwW8zr0{!2_ncA6iB2yCQ^z$JKEHF>< z7+H(rs%&~qK#hw2Y261B6R=A6w-$KjC&j!t5%>O2IknO!w5O(iM>S&E$lO);LoBZ6 zg6mZw%i6~{{sSZmcHD~v4HvKyt|n(pW#X>UfP#|%mBoTQ!28W$X?)?LRgtI{pa_gt znF?efa2u+GIBu@bo&l}QA9UcHvVvk+F=@^Ma2 zLWW`vARc4qO6B-yafb!4d#%t4N7OY8KgwWOn7P9c?fI#UL-S)({HBg#j$+CU0?@MF zUThS$CZ}WgfAo4G+|W&bLUO^KFh zv}hn8HT@Ua()+uosa5UA2+kVe(;T;8AcKLl86$#HW;{%AE zwC-`L9zK8t^NnI76+?9r=^VQ}E#QZKfy?ueOx)Frnb>S6_4mG>j2w?}?b98V>%{}- zFYnB{>8>hl{<7$dR*5d2s0hRz%^^PD6B)zGUtmGcwV zcE<(6QIG>2E((yBvVVV<*+JCWoGVEY{SZw~iOtkB%C&4h`Wj7)+^8XU%OPs{k)T$8 zWBr|_eF4OZ0|fewG)-9^52RQG@5Y*5tLbT#ky7J04iOK{y~k*Mjk;Bgpmwu8UnDjG z*+#EKhl9*1Ea-xH>+O;+ZTx(xb-K5%Q$Q+9;keN3UTy2BnBeRV15oa6o&NKSNJB2} z?t?eLX+%2+hUM|f3j3+cvz`CdGMoA*Scv;F!8AgKXl>Mzwnp(6s&Rp7nuN(B!#`+L zq_DE*jQ%2vHN1YbE1HYcnlTv%rDVX`fh|2SzZKJ zLC16|II@V>&x*cE(>+r09gj(KR}-;MF#_RgnTeZfaG%n8HxPcIgmVD|>W+>D7PVC( z-f2c)%0bKj9!up2g!QImKfR|A2&iUmL0FeJ@q{`wF%~47tJI+T9&B;<~iaoPH}mxC9RE#N%PmlGc+}6s5$^ zU@G%)b~+92fMXPCeAdjg?{@t+Ic@d1NhMa+t9x>QpBT2O_YnON0d&%>1f2p zMh1r7>4BkD-OEdA`kj0t(yMd7rUwrj#hQrJ!RgEX&hn z-foAX5y;|n!UnF9wZ96TV5csz6Mr*$yYCk zBMt#dv5}%&#%OXwnpJENJjJ1@F7TK<+)2>$e4d*yr--J-#blqY^>W5V0}S)Z2a^(+ zVTRkS8`@T{bS0F*#VADt;@Iwo1)X+uy@-^Z)99>zBu~o|3??E$OAEw+Ei{kDv)|}B;sx? zhDJ}hawEsiQb>f;^VjT3GokN?zB8unNDt%_>M(9wqb1^hLtzMIn zFP`f}n~!^s^1_cHCGfwrwd)c67mfe^qsc`pZ5?EhY=ntgWEk`3 zN#xHcLqWnqQkeFqsJqIF@-VPr%x}b88qGnP#$&V`pBV->e2#6?Z}JA*il(NAmE!3A zcGUM1hK6Ry|3T?P{)^H($bQi>9NV1=>bd=9>P(+4&9u^T%uwoaVl64LR%zH{1Ze1p z%s`l4*`t{bH{z@IBdN)4C6bzt+4+1?-oHt(J{nFnQ6<)syJiwd7&8L7hnjK|Z3Cq0 zt!AU@hL&wb+g-++2{j*=LzEus1x{09(EE@M+P4Q^Ie*GAylFE;)g?#hkAWlexY`fs zb1V#?=)`gqNT|O-n!Vgw8LxUH{+YyTF}f>c%A%-pesAaha=F%W(EY>=6UP^m?ODWo z@b85zK9)bl&+s^#w)rlK;}12^Z`O4G^R8-smSoB&vh?{2t(PQ;NR`#ya~flIzU49* z-rXwSwTDvp4I7x_bVIVNtXSqE;F(Koa_p$VbTNS@&l`skOZ%0c9K#_p)KIg^{baG~ zL`}^PKe1(x|m3YLaml!Ijxtq09i<4!O5JCk8;EnQ-jI4HfIJOHifjI_$CBu@EPl}t{X z-hLxp`|@S~FydHd-cy3s`CXCJ5fver5h$%)Cjz`bX{tmRTHt+!KX3fm^#qZe#gWKY zQ)qwe-v{b{6^Yxx{t3Y52@prTT*D53f;)w~PY}*v8kb0Y%fLC{I&Vqvh`A7KBqA>= z>_0F^IPHcenc{C9j!L~^O4zeNzu|>HAL1}*K;pXLbXp@8D(D5%_2NWOilU1J|Fh1%|?6YVcsB^+B81K;etll8Aekq(ek6TP*xW+v+JcUX3SOrRMftPDNyD5& z&Qk-oJ)oWrXkX!c9E~6jR)I7##kK_O`>10N$9$8(7ueMy{j&jMiS;dYRJQ9ZKNI52 z?8V%r7!Jpbx;LD0S4Im~E-^Jkjek(+llB9Skw(Vu)nCxV%D^T?1QC*jYTeTQb0UCl z_z;ZTx|ao`=~2x+_SZ>tg!975mV$lkAYah^_i4Hh=h|iAed;wj4`<)zpk<;ww7;N717mEL5Fe(lze%5|=QadJtjy(APHerzY zFjp=n48~zwm8lpDRElL%w$aRKHS%uPhT@HhCb=r(xGAUI|eU4LlyY$Ki3CkzHQdfZ06O4-yV}@=GRTJFg_sPaBI~SKT-j-oQZ`IdupTG@c zgsZFd!j(`zBP~MY#YOp?#)YjgwAz+kCE@JA_VPY~Wy($-`32!GLdAi@DdR-3YKEB_uXX)1!_&5{jhr*z4}pG?;2^f*nbW_ z)+*{WDCildf_$b*i#SPx@_aF^=<)AmDl}-UUm;dW240DqFsgiBWheg@22wKxmXfmZ zw7CrblV~7=dl6}Cx2#Q|so~Z>z{rWA;VAfd2nS77K)6$3Pvg>)!)pIU|3Kh}`4X~C z+Il)mfALOdC6eC}RBwk*^JBL5`>AJ^xy&w9J`D)@Vu=}>a%Rod;^>kgQ_ZKwIG zli*m_*gBBwhFz_k`M-t*X|Kz^*>VV(w4qN*$XwB!FoAbQB7Jx3=M1b$R&-|3ez?vv zl=Y+5bebz3J+9wf8dSnYCzfd8td!YWMyxQjUm}VB*x~R2XF+s0OY+f- zz}NcmPdL^Xak9a0iicuqR2|X~cs(7gqwaL9{ly5e*Z!J%IP+znZzy56tBawhyDKr7 z2%;9&sePlMkR}#A@RWCl@Kd~PHyJY2-jHTrs%&{$(7?O6tQ5p=BDjH<~v!ixU8 zEWa8BS_GideJlo;$?+_j+<|b9bhDI*X=is>yA#Z#hjqIdLx>I*0is`>Rv)4t&ChpT zWJNL}^W_w<((_;oLIlLwEb{cIZPw7}>UCl}Qw&i0PF^?X; zKBz08Xs(T8D}5Og3;&e+MHn%-e4ykP3XUCo>OM5N8V#=#HoRu0y(a5KQlOvrPl2f+ zZB(5RNX}F_LMDp|fMVRy3m=sLjc|)YsiS_$`Vj}D?N2t&SW<+u-T-R=OdF{p@{l!X z5#n!z_~bsNY0p!f$Qobx|H*Et1|XgLdeNZ>E)i`W!)Odhwy>Z1)duqWEQzF`3Q{HJ zc)00csJJlXx63F*Af|0UsLeFMu-i;QZ6U6{Nyi@X6}X3G2NS0C2NA$WWUd(HkG*R% z@592)Vbtw)QgLVcRF~J$1lNDRd);_Ao@}fgx!P&9Z+wue2rri*X9LJQltX6;igN>B z&m`RbA?p0sU&Map2)UPl4q)MJZKm=s^qnfstF!OzP+TtBEnXM-3)s`om!oo%@_u+U z{~PLi7Odq;3*^hWrS9(z34rYzix;AnnAbid zB{sG&PYjB!9hyx+A#Y1&5zEN{Heneztxe6DG3?u^KIgfr?iuo26r3nrGSSuup5%Wn-*vgv*k)VW z<9CVq!OfkP$umoNnSNxf76$6J(`31U$uNb#*2&6TUYd4VaZfODD3#%O8@v^-9 ztECWSa5sYLf@diNS38&U3?JyL*>2>W_XIE+Cg|aq%3^YZC+%eGFGl_>k6l<|Nrew0 z6njoC297wdHP)&8moQ)&#s7?5?G_r_)SCWG_#TxDh!+TyxH%L|f=Mp-a%^6G@fJDSs?4M*6TbHl@=n9)dTr!RjiwE4 zTAW7)?GanQbuvE=(-tH>Fe7{aAXrKIrKWFy{s2~^_H)g zcVtG#i-tP5tyqq(FPVlz_JqURDys)Ro_6)RJmTXqm!M@7QLB0rTf!5T<{e{ zX&RC-p&gA)qLvSYo4J(js(dEQOr*5V+?(uCsF&RXH%M`gxo*y)Bn~IETO+S;?5P_=M#-EPgSOq>n7b}^ zu72_)(2Hh|rM;e_wBw=E9I2(ST;aF0s_xENX#N4bxC5#~2++A+5FBtB^>%SvQ@nJH zr>vl#dt%Fc#%0^=B3;aOtz3oWp(ez|B(YgR^?q6ErMyKgZx2+?hJMS!fAKT}f9PU`ZhUFtPh89lt4${0&eojhp-mn9cOVgsI5C(t zIuxF}1%ND{1GfdhpS&elk&``T_s?7YyO8kY5G`GXeU)N-YkGmCfMPN#CodBXL6=Q^ zZf%x(-akH@`T}Z4NFGp9y-Rw{1@$AcIvXgiyy^$LN}C!n28Y+m(kr%nX()PMeR7IB(JbN_QGT1uj$C?f*DXI*4hpxUc))UI4Q^j&)^| zApc{r`){h4-BosFN+fHO_KBm)$k+&TojKH@Sqp}&ct&W?2>KdICd;!IIY$x|4B=Za z$1%j=w*Ukq;zUfHwIboxTKhX2+*6>YSSAgAxL?mri{vYeuaBau7_am7-Qm^#J9>;X zn&z!kzc@IoY4+4)GG(5Qe$Nc?pGhkn0;i#^VB^fqo7R3~C_?!=N6b0S;y@3GJ}){` zT_YY06sFc9u9csY=?jDxL=O2ezv40wrE(`wbIzk$f8{*9a#Eku3ypopvLWUYiAybl zKYoxSnX_XEu8#9`XKE8Z(ipWyS;AT1lpYhao(usKbzK2rMkuK*SCCtpyad!va4=9> zZc8^n1Gj843;1g9Pag1UbSeb7WvFI!O3Ghctco8Wh-E05&oJ6=tHYCRZi}Wiy0Er! zPsU1xKsJ3~g)+gtKKoX!ZJn}e>G8eCKm$7N3n|cmCP}qMPKs+K^>_*zi0UKv5yG zN){xzXh@r2^Dx%dXTXqll_v~;Ni2P z&+zRU6wPF$DY};sq61_rSsbKl%z6T;y)rC5cr`9|E6ADbfTVb@kJHXkh}XFNQv$^Z z2Uvw_j73lT1B4T__`?WXm0E1j6YLwoTN`loOtuTqww{=OK2*QY90f08J z{l8n+(YrdHW3$bUEy{ToDl`&W;CG}*T$3_oBKQouOjIp;;sD8v*Jv%NvMtGpZ{m7p zH?Hu_C%MZ7QRwEmGSPfM!k>dLVR^XCcH&+w?5h6*kw9+0`-mx#_YNTty$ML&+>UxI z^3CDs%lRH}DCAL5sCN#j)8}&Xxm6T-_mDa=yd0OuglAz>*IE{h05iqQBLMXo3rS&C zpY%`NIh@(#5IxE@(9-_kKNP)8%ZvY+tn2Fu>WEK?(SFL1V)?k)G3`hxyd_GHHCfNb z(i>DT)O{@hU;&-_)Sm=#fFdoe8~d&s&I^?JihP{2pZZ#si@;diu~ze!LvT^eCRF`? zyC|IfjmQ1r@s3H$^H$C)=kN)0nC~E@dWO(a>!~?W${&tr!HTin1}AU~*#(bY&7^c_ z;-FT+lW_2d0AK-WL0GCb0?_i{ygQNUf-X5X@}(-O+wxa>*$6l<(y93brE`2)#3xuMsp=i=9_u?n z<5`CGkc+uIM=dkeJ|=P!%txRgOab= zN8L6HfU)F#E}s`l9~eoq*+YH`iT(s8eU+w zPHUVdh4u|9CFX*jX(BJ_zpj8mcjQSgi4R!aItP#-0kvxp)v|HCed<6TCCU`e(2nEi zbL>>0dfAI!6bVln-HJTn>Xvd>O``+lu9k2w8goJHq7lCFXAIy|+hgaFiDEWa;fzqW zFNfX%u+A29)owRlp&m91o*5Jk)gIOI7*>*2=C*ZgL3mg|eWV$DvR(eBV((EdZ4S~G zdNz#q;0=gnnFRXTKNCUox+rJt^36dKL=|L4YQyu9QWHd`*cWn) z@v%~5G>~<)w>lGhEvH1l8Hy+WSv7jzLeh>g)$}+P#)s|JHpN5uLuIChOGII9I~lfe<#E@c<)ANnGgr6Z`FndublDgMmnRX3h& zyC@v8d*MZOwq8vCtJ(KuEad9giJS2j{)3uZ46ORs!d>ML@yU0@eO+ut>+x= zl{f#(V`=21E>YGCFN9-aC=Xecm=v0sDg*x^HsSCjn7C^>C<1Jn%aryY(E<<#6HKvP zS_`~mC>Xh19HMUp)GS!^&wxfV2i6N7f_1pE2;=b4`vVhmGD9o{-F_pt__3p_#4K5fMm5~c^A05!>@N5tP$MS2Ah;>hW3g6N*i!j3(9Kvy zrNodjW_XNOq}TTto4Q`sWuZM-|3FLtEdkF$K&WCv6{nYArGfE z98=4AvQK#CFgnx`ART8s`d7);PBx0XHo#@*(H)_?+ z9sDw}+)3Our`s${^l6Ch2?N>n3}iyb%HAgee*BL_kbI8ZjC_r@g`AEyls;aJqfloS z=zA0ec986u44O&CsWe$cCQhTq8I#MB2PN8_Ukk;mpjue~Y^E)yJA3zAgspGn?#J znaYE)%del_+mo^Ms_^vaQgG~6wp-$82s;Os_1jJ)K>S9*2rAZhYCNw%Ki7hko)^bX zYY|r1H#^52D9|5|FhbF=v~c_PDSj`p*3J=u>3JCJ(F~=`?d*TljSynprF4!k>}{h5 z=y7(oJ6(HYI6$z6J3L9JKUgexl85#!?W6W_fCU3H8Byg*FBAdiQ3{MwADjRFB5@|Taowsi zE;V@-ttogsVn#gJ_^Jcuh`Igb|5OJOfo`a^xhXJ6zE>jfJzo^6foHadh5 zTCV*Ps}mFjoyS(el5vc|7~>slD2+oMWw3k-t6UFefd!1Z=eMZt;vk-t?u?o& z0W&uGShbF}q%%>syN=6NzRv;GT2o^eVcLm*K)ffQ0CvY!9JmW za+zAUQ~Z++o}$1#P>vI`_V%sq5lU@z>^f1lsR@ zA(}>*d@Lr5@$MmcocSBmJ(~Y10A+x80#h{?2GS>msUpY1qs}WPjqulUY6OV9Q+}$h zYJAz3@x2n5yID;22R-z+e=fV0gTcusRD5*KPKe*|qRhZ;D%2c3nB_&89#Q&FeJ}X5 zR%x5T|4QR*P1adiYgY)8Nps?2Xyu&{1?Owp{~3&&fbZ0yHG0~SSJz{IT^CC|2EIJ$ zm~51@|7KIXElHxsCFm?A29kPg&thN>B}4z`&^W7(I&R(6l#a6JJLc@BRfq+x>^F@? zY8HGNlnUxVTGsW6N)EI+CSJBz8%^K{Db~jZ9?4UEJv`27-FH%3gVK|ft%Hd`dk4|H zjL0&5w#m)N@4TZ(`?2(*ATyf(#e|RnWSa>4`NCAqJO)!Rh#YMJw5vGx!J~gIdq!aE zd6vi;W$27WwHy$wqh6CUn(9@#Qs4xCX1mzvEge-m35P+PA%Odwq(b;&D6`+O@2Eg* z88lq4$x<}t{6^juUFYiRF~`Zd5|F@%un5Ww(0ZSZa;>y(D|cN~lrAmM$(uq-|330j z#yZsT*0EFf!<)k4cw{Kbsbj2dUm0(*cpY{-i7pR|4OyMohQZ5$Lddh^gYmKv>PJ*Uk>5(4hYoZRwF4RXF*<)CVht4Fr zc~IX&%V8q@Zf=)OJ14`d#KUw>O2^RZW+i;`nyB??&DoJ8Mi(UXC}V)+?{u zea{Rvm3IeUFvO$83^oo{(Z}N8p$_Q$N(}4v9Y{+!_ETcyq?p=oaOCST_P zG}Kby4HtZS%wFpFfXQf<`u?RzpNvhT()|GpB!}mXLDyLu1xIT#`V{LkAwp%XmSdT7 zQum!~cFf?2Qtgj)t*j7%cC8py?+Q9?e`*fIzZ7HSkEjsvVx&34~utF8`dg%*8n^-aK3F zlL1a2tAhlPoDFK5et70`@VVO<6G#)uI|!Lc!bA{WTzb?gC{~s_g*F9h(wH8F)pqV% z->L|d4PP;78fm-gw)`V$QCCh5s+KyTN2;D4wxQUQ)AW$#d+@qEDl|D4`+_il`^t~V zl@sDf#{>(Lgq7C}<|nKq{mDRwEgMR2wb3O3Od=caD0pMvm4KTGhVxO@Y*ZTS(f{S^ zT83K3s%@xCrtVh`iVVeZw0)@~_EV>f>6EXo*xpvJ`)E_Np+4KOZ>+AoePiR~?d!j~ zreZ@sMce8x+;hK2>*WzgjwfaP9)U%5&={~IRLwi22j(7~SO1LKh#Q$kn|+n}Fqre% zAtJuiZj`VR>zh_f@6qcdD$M>y#$ol7*6U%Wc1m~gFmpc9w<&`}AJx9PHjGrb$uMit zfNG_ckJjd**bb`Jc%kohUQ2!vF;ZDl-dhmr0j# zGKTRO5?rdTWh??a7rD`vjwv~USMD6%X}EJpaT297n=3|CijnruUpxITBNu+>B1O-S zG^KAx4tH3=fwF0Z_SO=0Tb*;zES8kNpr>_i>?NxTMmqT*wR8yje>AEA$B z>Z=S_;StJC9HQl#qPC7aZC}dUj`H<5`Y4R?72DKrdNCgQ5&euj>dJ1DL9ULYv4)O~ zWz6|YkHkIO9cK;&)2r$ogm)FiKR!AuR{$!;Mp!w9C6K3{4!3!zY1bsOuFGxXvYc3V z2~PE6d|zWzI#AK!(3>s73w9M835+oG≫TRTnAs&i+hxIyKP{OxvA6sr2(ub*#;% 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

N>Ivw} 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

vJZwC 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 literal 0 HcmV?d00001 diff --git a/docs/guide/register-simplex-name.md b/docs/guide/register-simplex-name.md index df78b19844..366661b7e5 100644 --- a/docs/guide/register-simplex-name.md +++ b/docs/guide/register-simplex-name.md @@ -90,9 +90,9 @@ finishes the setup. Set the name on the same profile the record points at. -- For your **contact address**, open your SimpleX address, tap **Your SimpleX +- For your **contact address**, open your SimpleX address, tap **Get SimpleX name**, enter the name, and save. -- For your **channel**, open the channel information, tap **SimpleX name** (below +- For your **channel**, open the channel information, tap **Get SimpleX name** (under **Channel link**), enter the name, and save. This proves to people who connect to you that `#name.testing` (or `@name.testing`) is your name. From 9ee79aae8d21d77526bd595e7d3bc61e98cf431b Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Wed, 22 Jul 2026 18:40:23 +0100 Subject: [PATCH 15/22] blog: corrections --- ...x-channels-v6-5-consortium-crowdfunding-freedom-of-speech.md | 2 +- blog/20260722-simplex-public-names.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/blog/20260430-simplex-channels-v6-5-consortium-crowdfunding-freedom-of-speech.md b/blog/20260430-simplex-channels-v6-5-consortium-crowdfunding-freedom-of-speech.md index ae163d3a04..51f0db7475 100644 --- a/blog/20260430-simplex-channels-v6-5-consortium-crowdfunding-freedom-of-speech.md +++ b/blog/20260430-simplex-channels-v6-5-consortium-crowdfunding-freedom-of-speech.md @@ -58,7 +58,7 @@ You can *register your interest* to participate in crowdfunding here: https://si Join the channel for updates [here](https://smp10.simplex.im/c#q09nMBmWFGz1m2TvgfZFaEOG5D2a7Ma9mSkl6pHXEsg) — you must install v6.5 to join it — or you can join a [read-only group](https://smp12.simplex.im/g#gJzy7ETpuvltqARIB73TQUpJ11Lz4Xpl9xeH9qNoGCg) from the previous app versions. -_Disclaimer: SimpleX Chat is testing the waters for a possible Reg CF offering. We’re not asking for or accepting any money right now, and we won’t accept any if sent. We can’t accept any offers to buy securities or take any payments until the official filing is done and it’s live through a regulated platform. Our testing the waters and your possible indications of interest doesn’t create any obligation or commitment of any kind._ +_Disclaimer: SimpleX Chat, Inc. is testing the waters for a possible Reg CF offering. We’re not asking for or accepting any money right now, and we won’t accept any if sent. We can’t accept any offers to buy securities or take any payments until the official filing is done and it’s live through a regulated platform. Our testing the waters and your possible indications of interest doesn’t create any obligation or commitment of any kind._ [^release]: v6.5 release also improved how new users make the first connection, increased security of sending web links, and has many other improvements — see *What's new* in the app or full release notes. diff --git a/blog/20260722-simplex-public-names.md b/blog/20260722-simplex-public-names.md index 03db374537..8380758f96 100644 --- a/blog/20260722-simplex-public-names.md +++ b/blog/20260722-simplex-public-names.md @@ -59,7 +59,7 @@ The commercial model for the network that we are building aims to make both our The planned crowdfunding will fund this development. You can [register your interest](https://simplexchat.typeform.com/crowdfunding), and join the [SimpleX Crowdfunding News channel](https://smp10.simplex.im/c#q09nMBmWFGz1m2TvgfZFaEOG5D2a7Ma9mSkl6pHXEsg) for updates. -_Disclaimer: SimpleX Chat is testing the waters for a possible Reg CF offering. We’re not asking for or accepting any money right now, and we won’t accept any if sent. We can’t accept any offers to buy securities or take any payments until the official filing is done and it’s live through a regulated platform. Our testing the waters and your possible indications of interest doesn’t create any obligation or commitment of any kind._ +_Disclaimer: SimpleX Chat, Inc. is testing the waters for a possible Reg CF offering. We’re not asking for or accepting any money right now, and we won’t accept any if sent. We can’t accept any offers to buy securities or take any payments until the official filing is done and it’s live through a regulated platform. Our testing the waters and your possible indications of interest doesn’t create any obligation or commitment of any kind._ [^testing]: Test names are free to register; you only need to pay the blockchain fee. The `.testing` namespace is temporary — test names will stop working in the app one month after `.simplex` name sales launch. From 03d6803ee774c8d005b36736fadf87e004eedc65 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Wed, 22 Jul 2026 19:06:44 +0100 Subject: [PATCH 16/22] blog: correction --- blog/20260722-simplex-public-names.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blog/20260722-simplex-public-names.md b/blog/20260722-simplex-public-names.md index 8380758f96..1b9220da4a 100644 --- a/blog/20260722-simplex-public-names.md +++ b/blog/20260722-simplex-public-names.md @@ -2,7 +2,7 @@ layout: layouts/article.html title: "SimpleX Public Names — a Name Nobody Can Take From You" date: 2026-07-22 -preview: "You can now give your channel or business a test SimpleX name that people can remember. Test names are free in v7-beta." +preview: "You can now give your channel or business a test SimpleX name — from v7-beta." image: images/20260722-register-name.png imageWide: true permalink: "/blog/20260722-simplex-public-names.html" @@ -12,7 +12,7 @@ permalink: "/blog/20260722-simplex-public-names.html" **Published:** Jul 22, 2026 -You can now give your channel or business a test SimpleX name that people can remember. Test names are free in v7-beta[^testing]. +You can now give your channel or business a test SimpleX name that people can remember. Test names are available from v7-beta[^testing]. ## Public names for channels and businesses — without user IDs From 49a866433120a784463cdf7c8e838b1da3e4ca6d Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Wed, 22 Jul 2026 19:26:28 +0000 Subject: [PATCH 17/22] core: reject group message forwards from unexpected admins (#7289) --- src/Simplex/Chat/Library/Subscriber.hs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Simplex/Chat/Library/Subscriber.hs b/src/Simplex/Chat/Library/Subscriber.hs index 28515aa068..78ff8f85cc 100644 --- a/src/Simplex/Chat/Library/Subscriber.hs +++ b/src/Simplex/Chat/Library/Subscriber.hs @@ -3873,6 +3873,8 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = Just (author, unknown) | memberRemoved author -> logInfo $ "x.grp.msg.forward: ignoring content from removed member, group " <> tshow (groupId' gInfo) <> ", member " <> safeDecodeUtf8 (strEncode memberId) <> ", event " <> tshow (toCMEventTag chatMsgEvent) + | not (useRelays' gInfo) && not (expectedForwarder author) -> + logInfo $ "x.grp.msg.forward: ignoring content from unexpected forwarder, group " <> tshow (groupId' gInfo) <> ", forwarder " <> tshow (groupMemberId' m) <> ", member " <> safeDecodeUtf8 (strEncode memberId) <> ", event " <> tshow (toCMEventTag chatMsgEvent) | otherwise -> do when unknown $ toView $ CEvtUnknownMemberCreated user gInfo m author void $ withVerifiedMsg gInfo scopeInfo author parsedMsg msgTs $ @@ -3880,6 +3882,13 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = Nothing -> pure () FwdChannel -> processForwardedMsg (VMUnsigned chatMsg) Nothing where + -- Forwards are only expected from the member that introduced us to the author: our host, or + -- the author's inviter. Unknown members have no such record, so any admin may forward theirs. + expectedForwarder :: GroupMember -> Bool + expectedForwarder author = + memberCategory m == GCHostMember + || invitedByGroupMemberId author == Just (groupMemberId' m) + || memberStatus author == GSMemUnknown -- ! see isForwardedGroupMsg: forwarded group events should include msgId to be deduplicated processForwardedMsg :: VerifiedMsg 'Json -> Maybe GroupMember -> CM () processForwardedMsg verifiedMsg author_ = do From 8ec4b424cbb794ceb5ade552bc641ad710e1bcca Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Wed, 22 Jul 2026 19:39:05 +0000 Subject: [PATCH 18/22] core: prohibit to change or assign relay role (#7284) --- src/Simplex/Chat/Library/Commands.hs | 23 ++++++++++++----------- src/Simplex/Chat/Library/Internal.hs | 6 ++---- src/Simplex/Chat/Library/Subscriber.hs | 3 +++ 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/Simplex/Chat/Library/Commands.hs b/src/Simplex/Chat/Library/Commands.hs index 4d1de3bc72..9b36af9327 100644 --- a/src/Simplex/Chat/Library/Commands.hs +++ b/src/Simplex/Chat/Library/Commands.hs @@ -2880,14 +2880,14 @@ processChatCommand cxt nm = \case -- TODO [relays] possible optimization is to read only required members + relays g@(Group gInfo members) <- withFastStore $ \db -> getGroup db cxt user groupId when (selfSelected gInfo) $ throwCmdError "can't change role for self" - let (invitedMems, currentMems, unchangedMems, maxRole, anyAdmin, anyPending, anyPrivilegedTarget, anyRosterChange, finalPrivilegedCount) = selectMembers members + let (invitedMems, currentMems, unchangedMems, maxRole, anyAdmin, anyPending, anyPrivilegedTarget, anyRelay, anyRosterChange, finalPrivilegedCount) = selectMembers members when (length invitedMems + length currentMems + length unchangedMems /= length memberIds) $ throwChatError CEGroupMemberNotFound when (length memberIds > 1 && (anyAdmin || newRole >= GRAdmin)) $ throwCmdError "can't change role of multiple members when admins selected, or new role is admin" when anyPending $ throwCmdError "can't change role of members pending approval" - -- TODO allow moderators (recipients already accept it; needs UI too): the observer..member limit is an - -- TODO `all` over targets - maxRole can't express it, a max hides targets below GRObserver (relay, - -- TODO unknown) that receivers reject. Fold roleRequiredToChange per target, or add allModeratable. + when (anyRelay || newRole == GRRelay) $ throwCmdError "relay role can't be changed" + -- TODO allow moderators (needs UI) - relay is rejected above (anyRelay), so drop the GRAdmin floor: + -- TODO assertUserGroupRole gInfo (roleRequiredToChange maxRole newRole) assertUserGroupRole gInfo $ maximum ([GRAdmin, maxRole, newRole] :: [GroupMemberRole]) -- in relay groups the roster has a single signer, so only the owner may change member/moderator/admin roles when (useRelays' gInfo && (isRosterRole newRole || anyPrivilegedTarget) && memberRole' (membership gInfo) /= GROwner) $ @@ -2908,22 +2908,23 @@ processChatCommand cxt nm = \case -- anyPrivilegedTarget: a target currently member/moderator/admin (gates the owner-only check); anyRosterChange: -- a current member's role change that alters the roster blob - the only case that bumps the version, since a -- bump with no delta reads as a gap to subscribers; finalPrivilegedCount: moderators + admins after the change. - selectMembers :: [GroupMember] -> ([GroupMember], [GroupMember], [GroupMember], GroupMemberRole, Bool, Bool, Bool, Bool, Int) - selectMembers = foldr' addMember ([], [], [], GRObserver, False, False, False, False, 0) + selectMembers :: [GroupMember] -> ([GroupMember], [GroupMember], [GroupMember], GroupMemberRole, Bool, Bool, Bool, Bool, Bool, Int) + selectMembers = foldr' addMember ([], [], [], GRObserver, False, False, False, False, False, 0) where - addMember m@GroupMember {groupMemberId, memberStatus, memberRole} (invited, current, unchanged, maxRole, anyAdmin, anyPending, anyPrivTarget, anyRosterChange, privCount) + addMember m@GroupMember {groupMemberId, memberStatus, memberRole} (invited, current, unchanged, maxRole, anyAdmin, anyPending, anyPrivTarget, anyRelay, anyRosterChange, privCount) | groupMemberId `elem` memberIds = let maxRole' = max maxRole memberRole anyAdmin' = anyAdmin || memberRole >= GRAdmin anyPending' = anyPending || memberPending m anyPrivTarget' = anyPrivTarget || isRosterRole memberRole + anyRelay' = anyRelay || memberRole == GRRelay privCount' = if isRosterRole newRole then privCount + 1 else privCount in if - | memberRole == newRole -> (invited, current, m : unchanged, maxRole', anyAdmin', anyPending', anyPrivTarget', anyRosterChange, privCount') - | memberStatus == GSMemInvited -> (m : invited, current, unchanged, maxRole', anyAdmin', anyPending', anyPrivTarget', anyRosterChange, privCount') + | memberRole == newRole -> (invited, current, m : unchanged, maxRole', anyAdmin', anyPending', anyPrivTarget', anyRelay', anyRosterChange, privCount') + | memberStatus == GSMemInvited -> (m : invited, current, unchanged, maxRole', anyAdmin', anyPending', anyPrivTarget', anyRelay', anyRosterChange, privCount') -- a current member's role actually changes here; it alters the roster iff the old or new role is on it - | otherwise -> (invited, m : current, unchanged, maxRole', anyAdmin', anyPending', anyPrivTarget', anyRosterChange || isRosterRole newRole || isRosterRole memberRole, privCount') - | otherwise = (invited, current, unchanged, maxRole, anyAdmin, anyPending, anyPrivTarget, anyRosterChange, if isRosterRole memberRole then privCount + 1 else privCount) + | otherwise -> (invited, m : current, unchanged, maxRole', anyAdmin', anyPending', anyPrivTarget', anyRelay', anyRosterChange || isRosterRole newRole || isRosterRole memberRole, privCount') + | otherwise = (invited, current, unchanged, maxRole, anyAdmin, anyPending, anyPrivTarget, anyRelay, anyRosterChange, if isRosterRole memberRole then privCount + 1 else privCount) changeRoleInvitedMems :: User -> GroupInfo -> [GroupMember] -> CM ([ChatError], [GroupMember]) changeRoleInvitedMems user gInfo memsToChange = do -- not batched, as we need to send different invitations to different connections anyway diff --git a/src/Simplex/Chat/Library/Internal.hs b/src/Simplex/Chat/Library/Internal.hs index 7bddfcaba5..63866b8a58 100644 --- a/src/Simplex/Chat/Library/Internal.hs +++ b/src/Simplex/Chat/Library/Internal.hs @@ -1288,13 +1288,11 @@ isRosterRole r = r == GRMember || r == GRModerator || r == GRAdmin isPrivilegedRole :: GroupMemberRole -> Bool isPrivilegedRole r = r >= GRMember --- Minimum role allowed to change a member's role from `from` to `to` (moderators only within observer..member). +-- Minimum role allowed to change a member's role from `from` to `to` (moderators only up to member; relay checked separately). roleRequiredToChange :: GroupMemberRole -> GroupMemberRole -> GroupMemberRole roleRequiredToChange from to - | moderatable from && moderatable to = GRModerator + | from <= GRMember && to <= GRMember = GRModerator | otherwise = maximum ([GRAdmin, from, to] :: [GroupMemberRole]) - where - moderatable r = GRObserver <= r && r <= GRMember -- Drop non-privileged-role entries and de-duplicate by memberId, keeping the first. -- Runs on the parsed roster blob. diff --git a/src/Simplex/Chat/Library/Subscriber.hs b/src/Simplex/Chat/Library/Subscriber.hs index 78ff8f85cc..949a9c8dfe 100644 --- a/src/Simplex/Chat/Library/Subscriber.hs +++ b/src/Simplex/Chat/Library/Subscriber.hs @@ -3337,6 +3337,7 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = xGrpMemRole :: GroupInfo -> Maybe GroupMember -> GroupMember -> MemberId -> GroupMemberRole -> Maybe MemberKey -> Maybe VersionRoster -> RcvMessage -> UTCTime -> CM (Maybe DeliveryJobScope) xGrpMemRole gInfo@GroupInfo {membership} fwdRelay_ m@GroupMember {memberRole = senderRole} memId memRole memberKey_ rosterVer_ msg@RcvMessage {msgSigned} brokerTs + | memRole == GRRelay = messageError "x.grp.mem.role: relay role can't be assigned" $> Nothing | membershipMemId == memId = applyAtRosterVersion gInfo fwdRelay_ m rosterVer_ $ let gInfo' = gInfo {membership = membership {memberRole = memRole}} @@ -3363,6 +3364,8 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = -- applyMember writes the change (role, or role + pinned key for a freshly TOFU-created member); -- the delivery scope (relay forwarding) is computed on the pre-change role changeMemberRole gInfo' member@GroupMember {memberRole = fromRole} created applyMember gEvent createItem + | fromRole == GRRelay = + messageError "x.grp.mem.role: relay role can't be changed" $> Nothing | senderRole < roleRequiredToChange fromRole memRole = messageError "x.grp.mem.role with insufficient member permissions" $> Nothing | useRelays' gInfo && (isRosterRole memRole || isRosterRole fromRole) && senderRole /= GROwner = From 177a591466c156010c298552421b5b513f5468f9 Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Thu, 23 Jul 2026 09:17:27 +0000 Subject: [PATCH 19/22] core: fix member support chats staying marked unread after they're read (#7281) * core: don't mark member support chat items read when reading group without scope Reading a group without a scope marked support-scope items read without decrementing the per-member support_chat_items_* counters, so members stayed unread in the support list even after their chat was fully read. Restrict the no-scope group read and its timed-items query to main-scope items. * plans: support chat unread on no-scope group read * core: update query plans for group scope read The main-scope read and timed-items queries now filter on group_scope_tag and group_scope_group_member_id, so they seek via idx_chat_items_group_scope_stats_all (5-column) instead of idx_chat_items_groups_user_mention (3-column). * plans: document query-plan and benchmark performance results * tests: fix unreliable support item id capture in no-scope group read test lastItemId returns the latest item by item_ts, which right after createGroup2 can be the group "connected" event rather than the just-sent support message. The per-item read then targeted the wrong (already-read, main-scope) item and never decremented the support counters, so the test failed regardless of the fix (consistently in CI, flakily locally depending on item ordering). Capture the support item id directly from the member-support scope instead, keeping the change contained to this test. Verified: the test passes with the fix and fails when the fix is reverted. * tests: fix name-shadowing build error in no-scope group read test The local pattern binding `itemId` shadowed the `itemId` helper imported from ChatTests.Utils, which -Wname-shadowing (Werror) rejects. Rename the local binding to `iId`. --- ...06-09-support-chat-unread-on-group-read.md | 200 ++++++++++++++++++ src/Simplex/Chat/Store/Messages.hs | 2 + .../SQLite/Migrations/chat_query_plans.txt | 6 +- tests/ChatTests/Groups.hs | 38 ++++ 4 files changed, 244 insertions(+), 2 deletions(-) create mode 100644 plans/2026-06-09-support-chat-unread-on-group-read.md diff --git a/plans/2026-06-09-support-chat-unread-on-group-read.md b/plans/2026-06-09-support-chat-unread-on-group-read.md new file mode 100644 index 0000000000..5d24cc5ff1 --- /dev/null +++ b/plans/2026-06-09-support-chat-unread-on-group-read.md @@ -0,0 +1,200 @@ +# Fix: support-chat unread stats not cleared after no-scope group read + +Branch: `nd/fix-support-chat-unread-on-group-read` (off `origin/master`) + +## Symptom + +In a group with member admission ("chat with admins"), some members keep showing +as unread in the *chats with members* list even after the admin opens their support +chat and reads everything. Reopening never clears them. It is most visible for +members who have already been given a role (e.g. `member`), because pending members +always render the flag icon anyway, so the stuck badge is invisible for them. + +## Root cause + +The *chats with members* badge is driven by the per-member counters +`support_chat_items_unread / _member_attention / _mentions` on `group_members` +(surfaced as `GroupSupportChat`, `Types.hs:1087`). These are denormalized counters, +maintained by increment on receive and decrement on read. + +Reading a group **without a scope** (`APIChatRead` with `scope = Nothing`, +`Commands.hs:1153-1166`) runs `updateGroupChatItemsRead` (`Store/Messages.hs:2078`), +whose `UPDATE` filtered only by `group_id`: + +```sql +UPDATE chat_items SET item_status = RcvRead, ... +WHERE user_id = ? AND group_id = ? AND item_status = RcvNew +``` + +This flips **support-scope** items to `RcvRead` too, but never touches the +`support_chat_items_*` counters. The result is a permanent desync: + +- the items are read (so the chat "looks" fully read), but +- the per-member counters stay > 0 (so the member stays "unread" in the list), and +- reopening the support chat can't fix it: the scoped read decrement + (`updateGroupScopeUnreadStats`, `Store/Messages.hs:2202`) only fires on a real + `RcvNew -> RcvRead` transition, and there are no `RcvNew` items left. + +This is inconsistent with how the group's main unread **count** is computed, which +already excludes support items (`Store/Messages.hs:916`, +`... AND group_scope_tag IS NULL AND group_scope_group_member_id IS NULL`). The read +path simply forgot the same predicate. + +Note: `member_attention` self-heals on open via `checkSupportChatAttention` +(`Commands.hs:593-613`), recomputing it from loaded items. `unread` and `mentions` +have **no** such correction, which is why the badge persists. + +## Fix (Option A — prevent new corruption) + +Add the main-scope predicate to the two queries in the no-scope group-read path so +that reading a group without a scope leaves support-scope items (and their +disappearing-message timers) entirely untouched: + +- `updateGroupChatItemsRead` (`Store/Messages.hs`) — the read itself. +- `getGroupUnreadTimedItems`, `Nothing` branch (`Store/Messages.hs`) — its companion + timed-items query. + +```sql +AND group_scope_tag IS NULL AND group_scope_group_member_id IS NULL +``` + +Both lines are required and neither is droppable: + +- Without the read filter, support items get marked read (the bug). +- Without the timed-items filter, a disappearing support message would have its + delete timer started by a main-group read while still unread — a *new* + inconsistency introduced by a half-fix. The no-scope `APIChatRead` handler + (`Commands.hs:1160-1166`) calls `getGroupUnreadTimedItems` then + `setGroupChatItemsDeleteAt` then starts deletion threads, so both must agree that + support items are out of scope. + +Support items continue to be read (and their counters decremented) the correct way: +via the scoped read paths (`updateSupportChatItemsRead` / `updateGroupChatItemsReadList` +with a `MemberSupport` scope), exercised when the support chat is opened. + +### Why this is consistent / safe + +- Selects exactly the main-scope rows, identical to the authoritative unread-count + query (`Store/Messages.hs:916`). No main item is ever wrongly excluded — inserts + always set `group_scope_tag` and `group_scope_group_member_id` together + (`Store/Messages.hs:600-603`). +- `groups.members_require_attention` becomes *more* consistent, not less: the + no-scope read no longer zeroes support items behind a still-positive group counter. +- The added predicate is constant, parameterized SQL — no injection surface — and is + the existing codebase idiom (916 / 1214 / 1524 / 1745). + +## Test + +`tests/ChatTests/Groups.hs :: testScopedSupportUnreadStatsGroupReadNoScope` +(registered under the support-chat `describe` block). + +A member sends one support message (`markRead = False`), the admin marks the whole +group read with `/_read chat #1` (no scope), then reads the item in scope with the +**per-item** read `/_read chat items #1(_support:2) `. The per-item read only +decrements on a genuine `RcvNew -> RcvRead` transition, so: + +- on master the no-scope read already consumed the item -> decrement is a no-op -> + `unread: 1, require attention: 1` (test fails); +- with the fix the item is still unread -> decrement applies -> + `unread: 0, require attention: 0` (test passes). + +The full scoped read `/_read chat #1(_support:2)` is deliberately *not* used to +assert this, because `updateSupportChatItemsRead` hard-zeroes the counters +regardless of item state and would mask the bug. + +## Performance + +The added predicate makes both queries **faster**, not slower, and needs no new +index. Verified two ways. + +### Query plan (EXPLAIN QUERY PLAN, via the checked-in plan snapshots) + +Regenerating `chat_query_plans.txt` shows both statements switch index: + +``` +- SEARCH chat_items USING INDEX idx_chat_items_groups_user_mention + (user_id=? AND group_id=? AND item_status=?) -- 3-column seek ++ SEARCH chat_items USING INDEX idx_chat_items_group_scope_stats_all + (user_id=? AND group_id=? AND group_scope_tag=? AND + group_scope_group_member_id=? AND item_status=?) -- 5-column seek +``` + +SQLite compiles `group_scope_tag IS NULL` / `group_scope_group_member_id IS NULL` +into equality constraints (`=?`), so the two new columns *deepen the index seek* +rather than adding a post-seek filter or scan. The read now uses +`idx_chat_items_group_scope_stats_all` +(`user_id, group_id, group_scope_tag, group_scope_group_member_id, item_status, …`, +`M20250721_indexes.hs`), which already exists — this is the same index the +authoritative unread-count query uses. No migration, no new index. + +Note: master was **not** degraded here — it already got a full 3-column seek via +`idx_chat_items_groups_user_mention`. So this is a modest improvement, not the repair +of a regression. The plan file only records two hunks (the two flipped statements); +the `saveQueryPlans` test also churns an unrelated `group_members` count entry and the +whole `agent_query_plans.txt`, both of which were reverted to keep the diff to exactly +those two queries. + +### Micro-benchmark (synthetic 200k-row group) + +On a synthetic group of ~200k `chat_items` where ~25% are support-scope, running the +old vs. new `UPDATE` in alternating trials: + +| Query | mean wall-clock | +|-----------------|-----------------| +| old (no filter) | ~10.5 s | +| new (scoped) | ~7.4 s (≈ −29%) | + +The speedup tracks the row reduction: the new query touches only the ~75% main-scope +rows, so it does ~25% less work and the tighter seek trims a bit more. This also +directly demonstrates the bug — the old query flips ~50k support rows to `RcvRead` +(without decrementing counters); the new one flips **0**. + +Caveat: absolute timings were noisy (concurrent GHC builds on the box); only the +*relative* comparison across alternating trials is reliable, and it was consistent in +direction and magnitude across runs. The gain scales with the support-item share — a +group with no support chats sees no measurable change. + +## Limitations (accepted, by decision) + +1. **No retroactive repair.** This change only prevents *new* corruption. Rows already + stuck (counter > 0 while the items are `RcvRead`) stay stuck until either the + per-member "Mark read" action (`apiSupportChatRead` -> `updateSupportChatItemsRead`, + which hard-zeroes) or, for `member_attention` only, the self-heal on open + (`checkSupportChatAttention`). A one-shot migration recomputing the three counters + from `chat_items` was considered and **intentionally not done**. + +2. **`setUserChatsRead` is not fixed.** The global "mark all chats read" + (`APIUserRead` -> `setUserChatsRead`, `Store/Direct.hs:640-646`) has the same flaw: + its `UPDATE chat_items ... WHERE user_id = ? AND item_status = ?` has no chat-type + and no scope filter, so it reads support items user-wide without decrementing the + counters. It is **left as-is on purpose**: no GUI client invokes `APIUserRead` + (it exists only as the Haskell command type `Controller.hs:357` and the CLI + binding), so it is not reachable from Android / desktop / iOS — only the terminal + CLI. The same one-line predicate would close it if a client ever exposes it. + +3. **`getUpdateGroupItem` relies on a UI contract.** The per-item read + (`updateGroupChatItemsReadList` -> `getUpdateGroupItem`, `Store/Messages.hs:2178`) + has no scope filter on its `UPDATE` and its `Nothing` branch decrements nothing, so + passing a support item ID with `scope = Nothing` would reproduce the desync. This is + defended only by the in-code assumption ("we rely on UI to not pass item IDs from + incorrect scope", `Store/Messages.hs:2162-2163`), not by the query. Not reachable in + normal flow; left unchanged to keep the diff surgical. + +## Files changed + +- `src/Simplex/Chat/Store/Messages.hs` — two one-line scope predicates. +- `tests/ChatTests/Groups.hs` — one regression test + its `it` registration. + +## Build & test run + +Library compiled clean via `bash /home/user/build/linux.sh`. The full test suite was +subsequently built and run against this branch (968 examples). The regression test +`should not read support chat items when reading group without scope` passes with the +fix and fails when the fix is reverted (confirmed by rebuilding master and re-running), +so it genuinely catches the desync. + +The suite had 8 failures on the run; each was classified as flaky/environmental, +by-design, or pre-existing on master — none attributable to this change. In particular +the timed-message failure (`both users have configured timed messages … restart`) was +reproduced identically on master with the fix reverted (3/3), proving it pre-existing; +it is a direct-chat test that never touches the group-scope read path. diff --git a/src/Simplex/Chat/Store/Messages.hs b/src/Simplex/Chat/Store/Messages.hs index 5d6cc8fd8b..7b71e61512 100644 --- a/src/Simplex/Chat/Store/Messages.hs +++ b/src/Simplex/Chat/Store/Messages.hs @@ -2093,6 +2093,7 @@ updateGroupChatItemsRead db User {userId} GroupInfo {groupId} = do [sql| UPDATE chat_items SET item_status = ?, item_viewed = 1, updated_at = ? WHERE user_id = ? AND group_id = ? + AND group_scope_tag IS NULL AND group_scope_group_member_id IS NULL AND item_status = ? |] (CISRcvRead, currentTs, userId, groupId, CISRcvNew) @@ -2149,6 +2150,7 @@ getGroupUnreadTimedItems db User {userId} groupId scope = SELECT chat_item_id, timed_ttl FROM chat_items WHERE user_id = ? AND group_id = ? + AND group_scope_tag IS NULL AND group_scope_group_member_id IS NULL AND item_status = ? AND timed_ttl IS NOT NULL AND timed_delete_at IS NULL |] (userId, groupId, CISRcvNew) diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt index 36f32944e2..14e2299514 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt +++ b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt @@ -1586,10 +1586,11 @@ Query: SELECT chat_item_id, timed_ttl FROM chat_items WHERE user_id = ? AND group_id = ? + AND group_scope_tag IS NULL AND group_scope_group_member_id IS NULL AND item_status = ? AND timed_ttl IS NOT NULL AND timed_delete_at IS NULL Plan: -SEARCH chat_items USING INDEX idx_chat_items_groups_user_mention (user_id=? AND group_id=? AND item_status=?) +SEARCH chat_items USING INDEX idx_chat_items_group_scope_stats_all (user_id=? AND group_id=? AND group_scope_tag=? AND group_scope_group_member_id=? AND item_status=?) Query: SELECT chat_item_moderation_id, moderator_member_id, created_by_msg_id, moderated_at @@ -5042,10 +5043,11 @@ SEARCH chat_items USING INTEGER PRIMARY KEY (rowid=?) Query: UPDATE chat_items SET item_status = ?, item_viewed = 1, updated_at = ? WHERE user_id = ? AND group_id = ? + AND group_scope_tag IS NULL AND group_scope_group_member_id IS NULL AND item_status = ? Plan: -SEARCH chat_items USING INDEX idx_chat_items_groups_user_mention (user_id=? AND group_id=? AND item_status=?) +SEARCH chat_items USING INDEX idx_chat_items_group_scope_stats_all (user_id=? AND group_id=? AND group_scope_tag=? AND group_scope_group_member_id=? AND item_status=?) Query: UPDATE chat_items SET item_status = ?, item_viewed = 1, updated_at = ? diff --git a/tests/ChatTests/Groups.hs b/tests/ChatTests/Groups.hs index 767728e400..c74b6367b4 100644 --- a/tests/ChatTests/Groups.hs +++ b/tests/ChatTests/Groups.hs @@ -240,6 +240,7 @@ chatGroupTests = do it "should correctly maintain unread stats for support chats on reading chat items" testScopedSupportUnreadStatsOnRead it "should correctly maintain unread stats for support chats on deleting chat items" testScopedSupportUnreadStatsOnDelete it "should correct member attention stat for support chat on opening it" testScopedSupportUnreadStatsCorrectOnOpen + it "should not read support chat items when reading group without scope" testScopedSupportUnreadStatsGroupReadNoScope it "should remove support chat with member when member is removed" testScopedSupportMemberRemoved it "should remove support chat with member when user removes member" testScopedSupportUserRemovesMember it "should remove support chat with member when member leaves" testScopedSupportMemberLeaves @@ -8462,6 +8463,43 @@ testScopedSupportUnreadStatsCorrectOnOpen = { markRead = False } +testScopedSupportUnreadStatsGroupReadNoScope :: HasCallStack => TestParams -> IO () +testScopedSupportUnreadStatsGroupReadNoScope = + testChatOpts2 opts aliceProfile bobProfile $ \alice bob -> do + createGroup2 "team" alice bob + + bob #> "#team (support) 1" + alice <# "#team (support: bob) bob> 1" + -- capture the support item id directly: lastItemId returns the latest item by + -- item_ts, which right after createGroup2 can be a group event ("connected") + -- rather than the support message, making the per-item read below target the + -- wrong item. + bobItemId <- + withCCTransaction alice $ \db -> do + rows <- DB.query_ db "SELECT chat_item_id FROM chat_items WHERE group_scope_tag = 'member_support' ORDER BY chat_item_id DESC LIMIT 1" :: IO [Only Int] + case rows of + Only iId : _ -> pure $ show iId + _ -> error "testScopedSupportUnreadStatsGroupReadNoScope: no member_support item" + + alice ##> "/member support chats #team" + alice <## "members require attention: 1" + alice <## "bob (Bob) (id 2): unread: 1, require attention: 1, mentions: 0" + + -- reading the group without scope must not mark support scope items read + alice #$> ("/_read chat #1", id, "ok") + + -- the support item was left unread, so reading it in scope still decrements the stats + alice #$> ("/_read chat items #1(_support:2) " <> bobItemId, id, "items read for chat") + + alice ##> "/member support chats #team" + alice <## "members require attention: 0" + alice <## "bob (Bob) (id 2): unread: 0, require attention: 0, mentions: 0" + where + opts = + testOpts + { markRead = False + } + testScopedSupportMemberRemoved :: HasCallStack => TestParams -> IO () testScopedSupportMemberRemoved = testChatOpts3 opts aliceProfile bobProfile cathProfile $ \alice bob cath -> do From fc28914455dc3ca69513177e7d3429051e0de4be Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Thu, 23 Jul 2026 09:18:11 +0000 Subject: [PATCH 20/22] desktop: fix saving files with '[', '*', or '?' in name on Linux (#7290) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * desktop: fix saving files with '[', '*', or '?' in name on Linux JFileChooser's BasicFileChooserUI treats filenames containing '[', '*', or '?' as glob patterns on Unix when the file does not exist on disk. The Save button's ApproveSelectionAction then applies a GlobFilter and returns without saving — the dialog stays open and nothing is written. Regression introduced in #2789 (commit 02d00944f, 2023-07-28), which started pre-populating the filename via selectedFile = File(filename). Before that the save dialog ran in DIRECTORIES_ONLY mode and the JDK glob check never saw the filename. Fix: on Linux save dialogs, find the Save button by identity (BasicFileChooserUI.getApproveSelectionAction() is public and returns the exact ActionListener wired on the button) and replace it with a wrapper that delegates to the original action for non-glob names and calls approveSelection() directly for glob names. Windows (per the JDK only '*' and '?' are glob chars there) and macOS (uses AWT FileDialog) are unaffected. Open dialogs keep glob filtering for power-user search. * desktop: always bypass JFileChooser glob-on-save on Linux Earlier in this branch we added a heuristic to delegate to the original ApproveSelectionAction for non-'[' names so that typing '*.pdf' in the save dialog would still glob-filter the listing. That preserved a Swing-only quirk that no native OS save dialog implements: - macOS uses NSSavePanel (already used in this app via AWT FileDialog) — no glob-on-save. - Native Windows / Linux GTK / KDE save dialogs — no glob-on-save. - JFileChooser on Windows — has it, but '*' and '?' aren't even legal NTFS filename chars, so users won't be typing them. It also blocks legitimate filenames containing '*' or '?' on Linux (legal on POSIX filesystems) from being saved, since they too get intercepted as glob. Replace the Save button's action with a handler that always treats the typed text as a literal filename. The result: any filename can be saved on Linux, behaviour aligns with macOS and with every native OS save dialog. The open dialog is untouched, so '*.pdf' glob-filtering there still works. * desktop: restore directory-only save dialog on Linux The previous commit installed the literal-filename glob bypass for every Linux save dialog (!isLoad && isLinux), including the DIRECTORIES_ONLY mode used when filename == null — e.g. the "Save QR code as image" flow (saveTempImageUncompressed → saveDialog.awaitResult() with no params). In that mode the bypass broke directory selection entirely: selecting a subfolder + Save traversed into it instead of approving it, and Save with an empty filename field no-oped. Net result: QR-code image saving was unusable on Linux. The glob-on-save bug only arises because a filename is pre-populated (selectedFile = File(filename)), which never happens in DIRECTORIES_ONLY mode. Gate the bypass on filename != null so the directory-save path keeps JFileChooser's original approve action. * desktop: simplify Linux save glob bypass via getDefaultButton --------- Co-authored-by: shum --- .../views/helpers/DefaultDialog.desktop.kt | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/helpers/DefaultDialog.desktop.kt b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/helpers/DefaultDialog.desktop.kt index 7341c6af23..79aaf5c727 100644 --- a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/helpers/DefaultDialog.desktop.kt +++ b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/helpers/DefaultDialog.desktop.kt @@ -14,10 +14,12 @@ import chat.simplex.res.MR import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import java.awt.FileDialog +import java.awt.event.ActionListener import java.io.File import javax.swing.JFileChooser import javax.swing.filechooser.FileFilter import javax.swing.filechooser.FileNameExtensionFilter +import javax.swing.plaf.basic.BasicFileChooserUI @Composable actual fun DefaultDialog( @@ -77,6 +79,13 @@ fun FrameWindowScope.FileDialogChooserMultiple( fileChooser.dialogTitle = title fileChooser.isMultiSelectionEnabled = allowMultiple && isLoad fileChooser.isAcceptAllFileFilterUsed = fileFilter == null + // Only install the glob bypass for the real file-save case (filename != null). When filename + // is null the dialog runs in DIRECTORIES_ONLY mode (e.g. "Save QR code as image"), where the + // Save button must approve the selected directory — the literal-filename handler would instead + // traverse into it (or no-op on an empty field), making directory selection impossible. + if (!isLoad && filename != null && desktopPlatform.isLinux()) { + installUnixSaveGlobBypass(fileChooser) + } if (fileFilter != null && fileFilterDescription != null) { fileChooser.addChoosableFileFilter(object: FileFilter() { override fun accept(file: File?): Boolean = fileFilter(file) @@ -120,6 +129,28 @@ fun FrameWindowScope.FileDialogChooserMultiple( } } +// Replace the Save button's action with a literal-filename handler. This bypasses JFileChooser's +// glob-on-save behaviour, which mis-handles '[' as a glob char on Unix (breaking filenames like +// '[1].pdf') and is not a feature of any native OS save dialog — macOS NSSavePanel and native +// Windows / Linux GTK / KDE save dialogs all treat the typed filename as a literal name. +private fun installUnixSaveGlobBypass(fc: JFileChooser) { + val ui = fc.ui as? BasicFileChooserUI ?: return + val original: ActionListener = ui.approveSelectionAction + val btn = ui.getDefaultButton(fc) ?: return + btn.removeActionListener(original) + btn.addActionListener { + val name = ui.fileName?.takeIf { it.isNotEmpty() } ?: return@addActionListener + val typed = File(name) + val target = if (typed.isAbsolute) typed else File(fc.currentDirectory, name) + if (target.isDirectory && fc.isTraversable(target)) { + fc.currentDirectory = target + } else { + fc.selectedFile = target + fc.approveSelection() + } + } +} + /* * Has graphic glitches on many Linux distributions, so use only on non-Linux systems. Also file filter doesn't work on Windows * */ From dc3c106bdad688450a53ea483b172033027dbda0 Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Fri, 24 Jul 2026 08:05:12 +0000 Subject: [PATCH 21/22] core: remove SimpleX Status preset contact (#7231) * core: remove SimpleX Status preset contact Preset contact cards are only created at user record creation (createPresetContactCards), so this affects new profiles only; existing profiles keep their stored SimpleX Status contact. Removing the card shifts contact ids allocated after /create user down by one, hence the test id updates. * plans: justify SimpleX Status preset contact removal --- ...2026-07-10-remove-status-preset-contact.md | 41 ++++++++++++++++ src/Simplex/Chat/Library/Commands.hs | 1 - src/Simplex/Chat/Library/Internal.hs | 15 ------ tests/ChatTests/Direct.hs | 48 +++++++++---------- tests/ChatTests/Profiles.hs | 28 +++++------ 5 files changed, 79 insertions(+), 54 deletions(-) create mode 100644 plans/2026-07-10-remove-status-preset-contact.md diff --git a/plans/2026-07-10-remove-status-preset-contact.md b/plans/2026-07-10-remove-status-preset-contact.md new file mode 100644 index 0000000000..566cf11dd0 --- /dev/null +++ b/plans/2026-07-10-remove-status-preset-contact.md @@ -0,0 +1,41 @@ +# Remove the SimpleX Status preset contact + +Branch: `nd/remove-status-preset-contact` · PR #7231 (supersedes #7200) + +## 1. Problem statement + +Every new profile gets a "SimpleX Status" preset contact card. It is too confusing for non-technical users: it looks like a person or a chat, but it is an automated broadcast bot, and tapping it opens a connect dialog rather than content. On top of that, its stored contact link is the old `simplex:/contact/#/...` invitation address; the intended replacement is a channel, which a preset *contact* card cannot deliver (see §3). + +## 2. Solution summary + +Delete the preset entirely: + +- `simplexStatusContactProfile` removed from `Library/Internal.hs` (14 lines incl. inline logo). +- Its `createContact` call removed from `createPresetContactCards` in `Library/Commands.hs` (one line; the "Ask SimpleX Team" preset stays). +- Test expectations updated mechanically (see §5). + +No migration for existing profiles: preset cards are only ever created inside user record creation (`APICreateActiveUser` → `createPresetContactCards`), so existing profiles keep their stored card, matching how presets have always behaved. Users can still reach the bot via https://status.simplex.chat and the blog. + +## 3. Why not fix the link instead (the #7200 dead end) + +#7200 swapped the preset's link to a channel link (`https://smp5.simplex.im/c#...`). That cannot work: preset cards are contacts, and tapping one runs `APIConnectContactViaAddress` → `prepareContact`/`joinContact` — the direct-contact handshake. Channel short links (`/c#` decodes to `CCTChannel`) must be joined via `APIConnectPreparedGroup`; `APIConnect` explicitly rejects them ("channel links must be connected via APIConnectPreparedGroup"), but the contact-card path has no such guard and silently performs the wrong handshake. Making the status channel a preset would require a preset *prepared channel* — `APIPrepareGroup` needs a full connReq plus `GroupShortLinkData`, run after the user is active — a substantially larger change than wanted, for a card that confuses the users it is shown to. + +## 4. Scope of effect + +- **New profiles**: get only the "Ask SimpleX Team" card. +- **Existing profiles**: unchanged; their stored SimpleX Status contact remains until the user deletes it. +- **Discovery**: this removes the status bot's only in-app discovery path for new users — deliberate, since the card was doing more harm (confusion) than good (discovery). + +## 5. Test impact + +Removing the card shifts contact ids allocated after `/create user` down by one: + +- 10 chat-list / `hasContactProfiles` expectations lose the status entry (`Direct.hs`, `Profiles.hs`). +- 24 numeric contact refs shift: `@6`→`@5` in `Direct.hs`; `@5`→`@4` and `@6`→`@5` in `Profiles.hs`, plus the id-arithmetic comments. +- `configureTimedMessages alice bob "6" "3"` → `"5"` — the contact id travels as a bare string argument, invisible to `@N`-pattern search; caught only by running the tests. + +Verified unaffected: group ids (`#N`), pending-connection ids (`:N` — preset cards create no connection rows), user ids, unread/`/users` counts (cards create no chat items), `MobileTests`/`RemoteTests`/`Local.hs` (harness users bypass presets), display-name allocation (per-user). + +## 6. Verification + +All 8 non-timing-sensitive affected tests pass locally. The 3 TTL/timed-message tests (`testUsersDifferentCIExpirationTTL`, `testUsersRestartCIExpiration`, `testUsersTimedMessages`) fail identically on the base commit `6bb1da9e8` in the same environment — pre-existing cleanup-manager timing flakes (cf. `d7010d527`), not regressions. The packaged desktop build was verified to contain no "SimpleX Status" strings in `libsimplex.so` while retaining "Ask SimpleX Team". diff --git a/src/Simplex/Chat/Library/Commands.hs b/src/Simplex/Chat/Library/Commands.hs index 9b36af9327..2226f80fab 100644 --- a/src/Simplex/Chat/Library/Commands.hs +++ b/src/Simplex/Chat/Library/Commands.hs @@ -441,7 +441,6 @@ processChatCommand cxt nm = \case where createPresetContactCards :: DB.Connection -> User -> ExceptT StoreError IO () createPresetContactCards db user = do - createContact db cxt user simplexStatusContactProfile createContact db cxt user simplexTeamContactProfile chooseServers :: Maybe User -> CM ([UpdatedUserOperatorServers], (NonEmpty (ServerCfg 'PSMP), NonEmpty (ServerCfg 'PXFTP))) chooseServers user_ = do diff --git a/src/Simplex/Chat/Library/Internal.hs b/src/Simplex/Chat/Library/Internal.hs index 63866b8a58..76deabbebb 100644 --- a/src/Simplex/Chat/Library/Internal.hs +++ b/src/Simplex/Chat/Library/Internal.hs @@ -3243,21 +3243,6 @@ simplexTeamContactProfile = contactDomain = Nothing } -simplexStatusContactProfile :: Profile -simplexStatusContactProfile = - Profile - { displayName = "SimpleX Status", - fullName = "", - shortDescr = Just "Automatic server status and app release updates", - description = Nothing, - image = Just (ImageData "data:image/jpg;base64,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"), - contactLink = Just (either error CLFull $ strDecode "simplex:/contact/#/?v=1-2&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FShQuD-rPokbDvkyotKx5NwM8P3oUXHxA%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEA6fSx1k9zrOmF0BJpCaTarZvnZpMTAVQhd3RkDQ35KT0%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion"), - peerType = Just CPTBot, - preferences = Nothing, - badge = Nothing, - contactDomain = Nothing - } - timeItToView :: String -> CM' a -> CM' a timeItToView s action = do t1 <- liftIO getCurrentTime diff --git a/tests/ChatTests/Direct.hs b/tests/ChatTests/Direct.hs index 232d97d8dd..e34f071fd0 100644 --- a/tests/ChatTests/Direct.hs +++ b/tests/ChatTests/Direct.hs @@ -1920,14 +1920,14 @@ testMultipleUserAddresses = cLinkAlisa <- getContactLink alice True bob ##> ("/c " <> cLinkAlisa) alice <#? bob - alice #$> ("/_get chats 2 pcc=on", chats, [("@bob", "Audio/video calls: enabled"), ("@Ask SimpleX Team", ""), ("@SimpleX Status", ""), ("*", "")]) + alice #$> ("/_get chats 2 pcc=on", chats, [("@bob", "Audio/video calls: enabled"), ("@Ask SimpleX Team", ""), ("*", "")]) alice ##> "/ac bob" alice <## "bob (Bob): accepting contact request, you can send messages to contact" concurrently_ (bob <## "alisa: contact is connected") (alice <## "bob (Bob): contact is connected") threadDelay 100000 - alice #$> ("/_get chats 2 pcc=on", chats, [("@bob", lastChatFeature), ("@Ask SimpleX Team", ""), ("@SimpleX Status", ""), ("*", "")]) + alice #$> ("/_get chats 2 pcc=on", chats, [("@bob", lastChatFeature), ("@Ask SimpleX Team", ""), ("*", "")]) alice <##> bob bob #> "@alice hey alice" @@ -1958,7 +1958,7 @@ testMultipleUserAddresses = (cath <## "alisa: contact is connected") (alice <## "cath (Catherine): contact is connected") threadDelay 100000 - alice #$> ("/_get chats 2 pcc=on", chats, [("@cath", lastChatFeature), ("@bob", "hey"), ("@Ask SimpleX Team", ""), ("@SimpleX Status", ""), ("*", "")]) + alice #$> ("/_get chats 2 pcc=on", chats, [("@cath", lastChatFeature), ("@bob", "hey"), ("@Ask SimpleX Team", ""), ("*", "")]) alice <##> cath -- first user doesn't have cath as contact @@ -2171,7 +2171,7 @@ testUsersDifferentCIExpirationTTL ps = do bob #> "@alisa alisa 4" alice <# "bob> alisa 4" - alice #$> ("/_get chat @6 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4")]) + alice #$> ("/_get chat @5 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4")]) threadDelay 3000000 @@ -2184,11 +2184,11 @@ testUsersDifferentCIExpirationTTL ps = do -- second user messages alice ##> "/user alisa" showActiveUser alice "alisa" - alice #$> ("/_get chat @6 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4")]) + alice #$> ("/_get chat @5 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4")]) threadDelay 2100000 - alice #$> ("/_get chat @6 count=100", chat, [(1,"chat banner")]) + alice #$> ("/_get chat @5 count=100", chat, [(1,"chat banner")]) where cfg = testCfg {initialCleanupManagerDelay = 0, cleanupManagerStepDelay = 0, ciExpirationInterval = 500000} @@ -2254,7 +2254,7 @@ testUsersRestartCIExpiration ps = do bob #> "@alisa alisa 4" alice <# "bob> alisa 4" - alice #$> ("/_get chat @6 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4")]) + alice #$> ("/_get chat @5 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4")]) threadDelay 3000000 @@ -2267,11 +2267,11 @@ testUsersRestartCIExpiration ps = do -- second user messages alice ##> "/user alisa" showActiveUser alice "alisa" - alice #$> ("/_get chat @6 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4")]) + alice #$> ("/_get chat @5 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4")]) threadDelay 4000000 - alice #$> ("/_get chat @6 count=100", chat, [(1,"chat banner")]) + alice #$> ("/_get chat @5 count=100", chat, [(1,"chat banner")]) where cfg = testCfg {initialCleanupManagerDelay = 0, cleanupManagerStepDelay = 0, ciExpirationInterval = 500000} @@ -2313,7 +2313,7 @@ testEnableCIExpirationOnlyForOneUser ps = do bob #> "@alisa alisa 4" alice <# "bob> alisa 4" - alice #$> ("/_get chat @6 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4")]) + alice #$> ("/_get chat @5 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4")]) threadDelay 2000000 @@ -2325,14 +2325,14 @@ testEnableCIExpirationOnlyForOneUser ps = do -- messages are not deleted for second user alice ##> "/user alisa" showActiveUser alice "alisa" - alice #$> ("/_get chat @6 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4")]) + alice #$> ("/_get chat @5 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4")]) withTestChatCfg ps cfg "alice" $ \alice -> do alice <## "subscribed 1 connections on server localhost" alice <## "subscribed 1 connections on server localhost" -- messages are not deleted for second user after restart - alice #$> ("/_get chat @6 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4")]) + alice #$> ("/_get chat @5 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4")]) alice #> "@bob alisa 5" bob <# "alisa> alisa 5" @@ -2342,7 +2342,7 @@ testEnableCIExpirationOnlyForOneUser ps = do threadDelay 2000000 -- new messages are not deleted for second user - alice #$> ("/_get chat @6 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4"), (1, "alisa 5"), (0, "alisa 6")]) + alice #$> ("/_get chat @5 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2"), (1, "alisa 3"), (0, "alisa 4"), (1, "alisa 5"), (0, "alisa 6")]) where cfg = testCfg {initialCleanupManagerDelay = 0, cleanupManagerStepDelay = 0, ciExpirationInterval = 500000} @@ -2376,12 +2376,12 @@ testDisableCIExpirationOnlyForOneUser ps = do bob #> "@alisa alisa 2" alice <# "bob> alisa 2" - alice #$> ("/_get chat @6 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2")]) + alice #$> ("/_get chat @5 count=100", chat, chatFeatures <> [(1, "alisa 1"), (0, "alisa 2")]) threadDelay 2000000 -- second user messages are deleted - alice #$> ("/_get chat @6 count=100", chat, [(1,"chat banner")]) + alice #$> ("/_get chat @5 count=100", chat, [(1,"chat banner")]) withTestChatCfg ps cfg "alice" $ \alice -> do alice <## "subscribed 1 connections on server localhost" @@ -2395,12 +2395,12 @@ testDisableCIExpirationOnlyForOneUser ps = do bob #> "@alisa alisa 4" alice <# "bob> alisa 4" - alice #$> ("/_get chat @6 count=100", chat, [(1,"chat banner"), (1, "alisa 3"), (0, "alisa 4")]) + alice #$> ("/_get chat @5 count=100", chat, [(1,"chat banner"), (1, "alisa 3"), (0, "alisa 4")]) threadDelay 3000000 -- second user messages are deleted - alice #$> ("/_get chat @6 count=100", chat, [(1,"chat banner")]) + alice #$> ("/_get chat @5 count=100", chat, [(1,"chat banner")]) where cfg = testCfg {initialCleanupManagerDelay = 0, cleanupManagerStepDelay = 0, ciExpirationInterval = 500000} @@ -2415,7 +2415,7 @@ testUsersTimedMessages ps' = do alice ##> "/create user alisa" showActiveUser alice "alisa" connectUsers alice bob - configureTimedMessages alice bob "6" "3" + configureTimedMessages alice bob "5" "3" -- first user messages alice ##> "/user alice" @@ -2444,7 +2444,7 @@ testUsersTimedMessages ps' = do alice ##> "/user alisa" showActiveUser alice "alisa" - alice #$> ("/_get chat @6 count=100", chat, [(1,"chat banner"), (1, "alisa 1"), (0, "alisa 2")]) + alice #$> ("/_get chat @5 count=100", chat, [(1,"chat banner"), (1, "alisa 1"), (0, "alisa 2")]) threadDelay 1000000 @@ -2457,7 +2457,7 @@ testUsersTimedMessages ps' = do alice ##> "/user alisa" showActiveUser alice "alisa" - alice #$> ("/_get chat @6 count=100", chat, [(1,"chat banner"), (1, "alisa 1"), (0, "alisa 2")]) + alice #$> ("/_get chat @5 count=100", chat, [(1,"chat banner"), (1, "alisa 1"), (0, "alisa 2")]) threadDelay 1000000 @@ -2466,7 +2466,7 @@ testUsersTimedMessages ps' = do alice ##> "/user" showActiveUser alice "alisa" - alice #$> ("/_get chat @6 count=100", chat, [(1,"chat banner")]) + alice #$> ("/_get chat @5 count=100", chat, [(1,"chat banner")]) -- first user messages alice ##> "/user alice" @@ -2496,7 +2496,7 @@ testUsersTimedMessages ps' = do alice ##> "/user alisa" showActiveUser alice "alisa" - alice #$> ("/_get chat @6 count=100", chat, [(1,"chat banner"), (1, "alisa 3"), (0, "alisa 4")]) + alice #$> ("/_get chat @5 count=100", chat, [(1,"chat banner"), (1, "alisa 3"), (0, "alisa 4")]) -- messages are deleted after restart threadDelay 1000000 @@ -2510,7 +2510,7 @@ testUsersTimedMessages ps' = do alice ##> "/user alisa" showActiveUser alice "alisa" - alice #$> ("/_get chat @6 count=100", chat, [(1,"chat banner"), (1, "alisa 3"), (0, "alisa 4")]) + alice #$> ("/_get chat @5 count=100", chat, [(1,"chat banner"), (1, "alisa 3"), (0, "alisa 4")]) threadDelay 1000000 @@ -2519,7 +2519,7 @@ testUsersTimedMessages ps' = do alice ##> "/user" showActiveUser alice "alisa" - alice #$> ("/_get chat @6 count=100", chat, [(1,"chat banner")]) + alice #$> ("/_get chat @5 count=100", chat, [(1,"chat banner")]) where ps = ps' {printOutput = True} :: TestParams configureTimedMessages :: HasCallStack => TestCC -> TestCC -> String -> String -> IO () diff --git a/tests/ChatTests/Profiles.hs b/tests/ChatTests/Profiles.hs index 4468756498..4b82779b0e 100644 --- a/tests/ChatTests/Profiles.hs +++ b/tests/ChatTests/Profiles.hs @@ -3934,14 +3934,14 @@ testShortLinkChangePreparedContactUser = testChat2 aliceProfile bobProfile test bob ##> ("/_prepare contact 1 " <> fullLink <> " " <> shortLink <> " " <> contactSLinkData) bob <## "alice: contact is prepared" - -- 2 ids are for "user contacts", 2 ids are for second user contact cards, so alice is id 5 - bob ##> "/_set contact user @5 2" + -- 2 ids are for "user contacts", 1 id is for second user contact card, so alice is id 4 + bob ##> "/_set contact user @4 2" bob <## "contact alice changed from user bob to user robert" bob ##> "/user robert" showActiveUser bob "robert" - bob ##> "/_connect contact @5 text hello" + bob ##> "/_connect contact @4 text hello" bob <### [ "alice: connection started", WithTime "@alice hello" @@ -3955,8 +3955,8 @@ testShortLinkChangePreparedContactUser = testChat2 aliceProfile bobProfile test alice @@@ [("@robert", "hey")] alice `hasContactProfiles` ["alice", "robert"] - bob #$> ("/_get chats 2 pcc=on", chats, [("@alice", "hey"), ("@Ask SimpleX Team", ""), ("@SimpleX Status", ""), ("*", "")]) - bob `hasContactProfiles` ["robert", "alice", "Ask SimpleX Team", "SimpleX Status"] + bob #$> ("/_get chats 2 pcc=on", chats, [("@alice", "hey"), ("@Ask SimpleX Team", ""), ("*", "")]) + bob `hasContactProfiles` ["robert", "alice", "Ask SimpleX Team"] bob ##> "/user bob" showActiveUser bob "bob (Bob)" bob @@@ [] @@ -3984,16 +3984,16 @@ testShortLinkChangePreparedContactUserDuplicate = testChat2 aliceProfile bobProf bob <## "alice: contact is prepared" -- 2 ids are for "user contacts" - -- 2 ids are for second user contact cards + -- 1 id is for second user contact card -- 1 for second user's alice - -- so this alice is id 6 - bob ##> "/_set contact user @6 2" + -- so this alice is id 5 + bob ##> "/_set contact user @5 2" bob <## "contact alice changed from user bob to user robert, new local name: alice_1" bob ##> "/user robert" showActiveUser bob "robert" - bob ##> "/_connect contact @6 text hello" + bob ##> "/_connect contact @5 text hello" bob <### [ "alice_1: connection started", WithTime "@alice_1 hello" @@ -4012,8 +4012,8 @@ testShortLinkChangePreparedContactUserDuplicate = testChat2 aliceProfile bobProf alice @@@ [("@robert", "hey"), ("@robert_1", "hey")] alice `hasContactProfiles` ["alice", "robert", "robert"] - bob #$> ("/_get chats 2 pcc=on", chats, [("@alice", "hey"), ("@alice_1", "hey"), ("@Ask SimpleX Team", ""), ("@SimpleX Status", ""), ("*", "")]) - bob `hasContactProfiles` ["robert", "alice", "alice", "Ask SimpleX Team", "SimpleX Status"] + bob #$> ("/_get chats 2 pcc=on", chats, [("@alice", "hey"), ("@alice_1", "hey"), ("@Ask SimpleX Team", ""), ("*", "")]) + bob `hasContactProfiles` ["robert", "alice", "alice", "Ask SimpleX Team"] bob ##> "/user bob" showActiveUser bob "bob (Bob)" bob @@@ [] @@ -4106,8 +4106,8 @@ testShortLinkChangePreparedGroupUser = testChat3 aliceProfile bobProfile cathPro alice @@@ [("#team", "3"), ("@cath","sent invitation to join group team as admin")] alice `hasContactProfiles` ["alice", "cath", "robert"] - bob #$> ("/_get chats 2 pcc=on", chats, [("#team", "3"), ("@Ask SimpleX Team", ""), ("@SimpleX Status", ""), ("*", "")]) - bob `hasContactProfiles` ["robert", "alice", "cath", "Ask SimpleX Team", "SimpleX Status"] + bob #$> ("/_get chats 2 pcc=on", chats, [("#team", "3"), ("@Ask SimpleX Team", ""), ("*", "")]) + bob `hasContactProfiles` ["robert", "alice", "cath", "Ask SimpleX Team"] cath @@@ [("#team", "3"), ("@alice","received invitation to join group team as admin")] cath `hasContactProfiles` ["cath", "alice", "robert"] bob ##> "/user bob" @@ -4220,7 +4220,7 @@ testShortLinkChangePreparedGroupUserDuplicate = testChat3 aliceProfile bobProfil alice @@@ [("#team", "7"), ("@cath","sent invitation to join group team as admin")] alice `hasContactProfiles` ["alice", "cath", "robert", "robert"] - bob `hasContactProfiles` ["robert", "robert", "robert", "alice", "alice", "cath", "cath", "Ask SimpleX Team", "SimpleX Status"] + bob `hasContactProfiles` ["robert", "robert", "robert", "alice", "alice", "cath", "cath", "Ask SimpleX Team"] cath @@@ [("#team", "7"), ("@alice","received invitation to join group team as admin")] cath `hasContactProfiles` ["cath", "alice", "robert", "robert"] bob ##> "/user bob" From 83207304401304fa9d9725cb319f0fd3d5bcdd5a Mon Sep 17 00:00:00 2001 From: Evgeny Date: Fri, 24 Jul 2026 10:50:46 +0100 Subject: [PATCH 22/22] core: prohibit image previews when images are prohibited (#7296) --- src/Simplex/Chat/Library/Internal.hs | 2 +- src/Simplex/Chat/Protocol.hs | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Simplex/Chat/Library/Internal.hs b/src/Simplex/Chat/Library/Internal.hs index 76deabbebb..271348b5d6 100644 --- a/src/Simplex/Chat/Library/Internal.hs +++ b/src/Simplex/Chat/Library/Internal.hs @@ -343,7 +343,7 @@ prohibitedGroupContent :: GroupInfo -> GroupMember -> Maybe GroupChatScopeInfo - prohibitedGroupContent gInfo@GroupInfo {membership = mem@GroupMember {memberRole = userRole}} m scopeInfo mc ft file_ sent | not supportAllowed = Just GFSupport | isVoice mc && not (groupFeatureMemberAllowed SGFVoice m gInfo) && not hostApprovalVoice = Just GFVoice - | isNothing scopeInfo && not (isVoice mc) && isJust file_ && not (groupFeatureMemberAllowed SGFFiles m gInfo) = Just GFFiles + | isNothing scopeInfo && not (isVoice mc) && (isJust file_ || isMedia mc) && not (groupFeatureMemberAllowed SGFFiles m gInfo) = Just GFFiles | isNothing scopeInfo && isReport mc && (badReportUser || not (groupFeatureAllowed SGFReports gInfo)) = Just GFReports | isNothing scopeInfo && prohibitedSimplexLinks gInfo m mc ft = Just GFSimplexLinks | otherwise = Nothing diff --git a/src/Simplex/Chat/Protocol.hs b/src/Simplex/Chat/Protocol.hs index 2863b20b4b..19ba3d022d 100644 --- a/src/Simplex/Chat/Protocol.hs +++ b/src/Simplex/Chat/Protocol.hs @@ -815,6 +815,13 @@ isVoice = \case MCVoice {} -> True _ -> False +isMedia :: MsgContent -> Bool +isMedia = \case + MCImage {} -> True + MCVideo {} -> True + MCFile {} -> True + _ -> False + isReport :: MsgContent -> Bool isReport = \case MCReport {} -> True