Narasimha-sc
7c635cfb04
Merge branch 'master' into nd/fix-RTL-issues
2026-10-19 12:29:44 +00:00
Evgeny Poberezkin
5a02b906e6
core: 7.1.0.14 (simplexmq 7.1.0.14)
2026-10-19 13:25:55 +01:00
bddbe5afaf
website: translations ( #7771 )
...
* website: disable badge page temporarily (#7516 )
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
* Translated using Weblate (Czech)
Currently translated at 99.2% (376 of 379 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/cs/
* Translated using Weblate (Indonesian)
Currently translated at 95.5% (362 of 379 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/id/
* website: remove duplicate index-hero-invest key in Indonesian translation
---------
Co-authored-by: Evgeny <evgeny@poberezkin.com >
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
Co-authored-by: zenobit <zenobit@disroot.org >
Co-authored-by: Arif Budiman <arifpedia@gmail.com >
Co-authored-by: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com >
2026-10-19 12:25:00 +00:00
+9
5b61fd5c99
ui: translations ( #7770 )
...
* website: disable badge page temporarily (#7516 )
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
* Translated using Weblate (German)
Currently translated at 100.0% (2921 of 2921 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/
* Translated using Weblate (German)
Currently translated at 100.0% (2513 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/de/
* Translated using Weblate (French)
Currently translated at 100.0% (2921 of 2921 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/fr/
* Translated using Weblate (French)
Currently translated at 100.0% (2513 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/fr/
* Translated using Weblate (Italian)
Currently translated at 100.0% (2921 of 2921 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/
* Translated using Weblate (Italian)
Currently translated at 100.0% (2513 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.9% (2920 of 2921 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/
* Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.6% (2911 of 2921 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/pt_BR/
* Translated using Weblate (Hungarian)
Currently translated at 100.0% (2921 of 2921 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
* Translated using Weblate (Hungarian)
Currently translated at 100.0% (2513 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/
* Translated using Weblate (Azerbaijani)
Currently translated at 32.9% (827 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/az/
* Translated using Weblate (Kurdish)
Currently translated at 29.3% (858 of 2921 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ku/
* Translated using Weblate (Kurdish)
Currently translated at 32.8% (961 of 2921 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ku/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.9% (2929 of 2930 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/
* Translated using Weblate (Italian)
Currently translated at 100.0% (2930 of 2930 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/
* Translated using Weblate (Hungarian)
Currently translated at 100.0% (2930 of 2930 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
* Translated using Weblate (Kurdish)
Currently translated at 38.3% (1123 of 2930 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ku/
* Translated using Weblate (German)
Currently translated at 100.0% (2930 of 2930 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/
* Translated using Weblate (Azerbaijani)
Currently translated at 33.2% (835 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/az/
* Update translation files
Updated by "Cleanup translation files" hook in Weblate.
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 97.6% (2903 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 97.8% (2909 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/
* Translated using Weblate (Hungarian)
Currently translated at 100.0% (2972 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
* Translated using Weblate (Hungarian)
Currently translated at 100.0% (2513 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/
* Translated using Weblate (Italian)
Currently translated at 98.0% (2913 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/
* Translated using Weblate (Italian)
Currently translated at 100.0% (2972 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 97.9% (2911 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/
* Translated using Weblate (German)
Currently translated at 100.0% (2972 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/
* Translated using Weblate (French)
Currently translated at 99.3% (2952 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/fr/
* Translated using Weblate (Italian)
Currently translated at 100.0% (2972 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/
* Translated using Weblate (Italian)
Currently translated at 100.0% (2513 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/
* Translated using Weblate (Arabic)
Currently translated at 97.1% (2888 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/
* Translated using Weblate (French)
Currently translated at 99.8% (2967 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/fr/
* Translated using Weblate (Spanish)
Currently translated at 99.0% (2943 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.9% (2971 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/
* Translated using Weblate (Spanish)
Currently translated at 100.0% (2972 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/
* Translated using Weblate (Spanish)
Currently translated at 100.0% (2513 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/
* Translated using Weblate (Spanish)
Currently translated at 100.0% (2972 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/
* Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.1% (2886 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/pt_BR/
* Translated using Weblate (Azerbaijani)
Currently translated at 37.4% (942 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/az/
* Translated using Weblate (French)
Currently translated at 100.0% (2972 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/fr/
* Translated using Weblate (Czech)
Currently translated at 90.8% (2701 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/cs/
* Translated using Weblate (Azerbaijani)
Currently translated at 42.6% (1071 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/az/
* Translated using Weblate (Czech)
Currently translated at 91.0% (2705 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/cs/
* Translated using Weblate (Czech)
Currently translated at 50.2% (1264 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/cs/
* Translated using Weblate (Azerbaijani)
Currently translated at 45.2% (1136 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/az/
* Translated using Weblate (Azerbaijani)
Currently translated at 45.3% (1140 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/az/
* Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (2972 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/pt_BR/
* Translated using Weblate (Azerbaijani)
Currently translated at 46.2% (1162 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/az/
* Translated using Weblate (Portuguese)
Currently translated at 37.2% (1108 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/pt/
* Translated using Weblate (Portuguese)
Currently translated at 40.1% (1193 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/pt/
* Translated using Weblate (Portuguese)
Currently translated at 40.2% (1195 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/pt/
* Translated using Weblate (Slovak)
Currently translated at 36.6% (1089 of 2972 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/sk/
* Translated using Weblate (Azerbaijani)
Currently translated at 47.0% (1183 of 2513 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/az/
* android, desktop: remove unused translations
* ui: fix translations (stale badge texts, missing placeholder, inverted and verbless strings)
- de, es, fr, hu, it, pt-BR, zh-Hans: re-translate badge strings from the current English (#7544 rewrote them after they were translated), restore the %1$s detail in badges_error_bad_service_response
- es, pt-BR: badges_savings is a discount, not "store"
- zh-Hans: Legend badge tier is 传奇, not a chart legend
- ku: "removed you" read as "you removed"; removed status is derxistî
- pt: verb buttons (Open, Archive, Save address settings, Paste link / Scan), link vs address in onboarding, accepted/removed %1$s events
- az (iOS): Mark deleted/verified/read, Keep conversation, Forward, Lock after, broken bold
- pt-BR: Monthly badge period, "shown on your profile" caption
- de: Support SimpleX as an action (it is also an alert button)
- cs (iOS): %d day singular, Test relay caption grammar
---------
Co-authored-by: Evgeny <evgeny@poberezkin.com >
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
Co-authored-by: mlanp <github@lang.xyz >
Co-authored-by: Ranakan <ranakan.dev@protonmail.ch >
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org >
Co-authored-by: Hosted Weblate user 54392 <hamburger2048@users.noreply.hosted.weblate.org >
Co-authored-by: SanctumSaturn <oraculogithub@gmail.com >
Co-authored-by: summoner001 <summoner@disroot.org >
Co-authored-by: Mireli5656 <miraliseyidli5656@gmail.com >
Co-authored-by: Terciman <ter.distant121@passinbox.com >
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org >
Co-authored-by: No name <usir.alerts@onionmail.org >
Co-authored-by: zenobit <zenobit@disroot.org >
Co-authored-by: Fábio Pereira (Serzedo) <fpereira-84@users.noreply.hosted.weblate.org >
Co-authored-by: Martin Kozempel <martin1928@users.noreply.hosted.weblate.org >
Co-authored-by: Mireli5656 <mireli5656@users.noreply.hosted.weblate.org >
Co-authored-by: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com >
2026-10-19 12:24:24 +00:00
Narasimha-sc
5804603da0
Merge branch 'master' into nd/fix-RTL-issues
2026-10-19 11:52:00 +00:00
Evgeny and Evgeny @ SimpleX Chat
3e6fd3836b
core: round down time of sent messages to prevent replies showing above if they are within one second ( #7695 )
...
* core: round down time of sent messages to prevent replies showing above if they are within one second
* fix item timestamps
* query plans
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-19 12:47:25 +01:00
spaced4ndy
d04510f66f
ci: add a placeholder for the Android app test workflow, so it can be started by hand on its branch ( #7772 )
2026-10-19 11:26:22 +00:00
sh
58bc94bc74
core: carry ICE restart session in call extra info ( #7718 )
2026-10-19 12:22:10 +01:00
2ea1ec0d50
ui: reconnect call ( #7711 )
...
* Update Call.hs
* Update Internal.hs
* add reconnecting string
* Update WebRTC.kt
* desktop: show reconnecting state, keep call duration
* android keep connection time correct wiith adding reconnecting
* Update CallTypes.swift add reconnecting status on IOS
* Update WebRTC.swift add reconnecting
* add reconnecting and make sure call duration is correct
* Update call.ts
* core: regenerate call.js from call.ts
* Update Call.hs revert call status change
minimization
* Update Internal.hs rever to minimize changes
* Update CallTypes.swift minimize changes
* Update WebRTC.kt minimize changes
* Update CallView.desktop.kt desktop shows reconnecting without sending to core
* Update CallView.android.kt show reconnecting without sending it to the core
* Update ActiveCallView.swift show reconnecting to ui without sending to core
* Update CallView.desktop.kt add reconnecting sound on reconnect
* Update CallView.android.kt add reconnecting sound
* Update ActiveCallView.swift play reconnecting sound when reconnecting
* Update RecAndPlay.desktop.kt
* rebuild
* refactor
* build
* android, desktop: restart ICE to reconnect calls
* ios: restart ICE to reconnect calls
* webrtc: add call reconnection e2e tests
* android, desktop: fix lost call commands
---------
Co-authored-by: GuavaGoat <320862384+GuavaGoat@users.noreply.github.com >
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-19 12:17:16 +01:00
Evgeny and Evgeny @ SimpleX Chat
634fa5ecff
core: autoincrement database IDs ( #7766 )
...
* core: autoincrement database IDs
* migration
* update simplexmq
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-19 12:14:19 +01:00
Evgeny and Evgeny @ SimpleX Chat
1cbbe82517
ci: fix mac library build to sign and notarize library ( #7765 )
...
* ci: fix mac library build to sign and notarize library
* script
* sign and notarize to test
* remove test build
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-19 11:59:43 +01:00
spaced4ndy
7ac7d00025
ci: start the app tests from run tags only on f/ branches ( #7768 )
2026-10-19 10:25:26 +00:00
spaced4ndy
35bc0b66d9
ci: app test workflows save no caches, reuse their builds as artifacts, and run Claude in its own job ( #7767 )
2026-10-19 09:31:38 +00:00
spaced4ndy
0eeac1bb92
docs: normalize badge in-app checkout wireframe
2026-10-19 13:00:31 +04:00
sh
bdc4edc524
nix: build armv7a from master with ghc 8.10.7 ( #7763 )
2026-10-19 09:07:52 +01:00
Evgeny and Evgeny @ SimpleX Chat
924f2b9644
api: fix python code generation ( #7764 )
...
* api: fix python code generation
* fix python types
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-19 08:32:09 +01:00
Evgeny and Evgeny @ SimpleX Chat
a766d0af0f
ci: package releases with drafts in simplex-chat-libs ( #7754 )
...
* ci: package releases with drafts in simplex-chat-libs
* test release
* core: 7.1.0.12
* packages: release nodejs and python libraries
* fixes
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-19 07:50:09 +01:00
Evgeny and Evgeny @ SimpleX Chat
0563460204
core, ui: support block markdown ( #7734 )
...
* plan: support block markdown
* update plans
* core, ui: markdown plans and implementation
* better
* simplify
* markdown tests and fixes
* implement
* fixes
* fix test
* bold
* block markdown rendering
* fix selection and rtl
* fixes
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-18 22:44:33 +01:00
Evgeny and Evgeny @ SimpleX Chat
5a5a927821
ci: reduce the number of runners ( #7750 )
...
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-18 11:40:08 +01:00
Evgeny and Evgeny @ SimpleX Chat
1d0247b7dd
core: preserve profile peer type when connecting incognito ( #7751 )
...
* core: preserve profile peer type when connecting incognito
* Apply batched suggestions from code review
Co-authored-by: Evgeny <evgeny@poberezkin.com >
* fix
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-18 08:51:33 +01:00
Narasimha-sc
64316071c4
android, desktop: mirror more RTL icons and placements
...
Add Painter.mirrorIfRtl() for icons drawn by shared helpers that take a
Painter, and use it for the delivery receipts "Don't enable" chevron and
the "Show message status" arrow. Mirror the forwarded delivery status
chevron. Place the rows of framed messages (e.g. image captions), the
group member name row and the supporter banner image relative to the
layout direction.
Update the plan: these are no longer deferred, and correct its
descriptions of the dropdown, the chat list header and the tail side.
2026-10-18 02:20:19 +00:00
Narasimha-sc
1dc9849818
android, desktop: refine RTL fix and add design doc
...
Surgical refinements on top of the initial RTL fix, plus a design doc
in plans/.
- chatItemShape (ChatItemView.kt): extract `val tailOnRight = ...` so
the predicate names what the conditional does. Comment trimmed to
the single load-bearing invariant ("default path draws tail at
bottom-left") since the rest is implied by the variable name.
- SubscriptionStatusIcon.kt: hoist `val iconModifier =
modifier.mirrorIfRtl()` once at the top of the composable and reuse
it at all five Icon call sites. Calling mirrorIfRtl five times or
once produces the same Modifier within one composition.
- GoToItemInnerButton (ChatItemView.kt): add `mirror: Boolean = false`
parameter and pass `mirror = true` at the directional call site
(ic_arrow_forward, "go to forwarded source"). The other call site
(ic_search) keeps the default and is unchanged.
- Modifiers.kt, FramedItemView.kt: drop two explanatory comments that
restated framework-primitive behavior (mirrorIfRtl's own name, and
the documented behavior of placeRelative).
plans/2026-05-13-rtl-layout-issues.md documents the three independent
mechanisms behind the fix (bubble shape, app-bar slot placement,
asymmetric drawables), the bubble-tail XOR predicate, and four
considered-and-rejected alternatives.
2026-10-18 02:01:27 +00:00
Narasimha-sc
f977ad22a3
android, desktop: fix several RTL layout issues
...
Fixes https://github.com/simplex-chat/simplex-chat/issues/5448
The original report documents four user-visible regressions under an RTL
locale (Arabic, Persian, Hebrew): chat bubble tails on the wrong side,
chat header call/menu buttons not mirrored, settings back arrow pointing
the wrong way, and the chat list profile avatar laid out in its LTR
position. This commit addresses all of them and a handful
of related directional-icon mirroring sites discovered during the audit.
- Chat bubble tail direction: chatItemShape now reads layoutDirection
from the GenericShape lambda and conditions the matrix mirror on
sent != isRtl, so sent-bubble tails are on the outer (end) edge and
received-bubble tails point toward the contact's profile under both
LTR and RTL. The bubble-tail paddings in FramedItemView and ChatView
already use direction-aware start/end and now align with the
mirrored shape automatically.
- App-bar slot mirroring: CenteredRowLayout in FramedItemView switches
from place(...) to placeRelative(...) so the navigation icon and the
action buttons swap visual sides under RTL. Both the chat header
(call/menu buttons) and the chat list header (profile avatar) flow
through this layout, so one fix covers both.
- Asymmetric directional drawables: add Modifier.mirrorIfRtl()
(Modifier.scale(-1f, 1f) when LocalLayoutDirection.current is Rtl)
and apply it to the back arrow in NavigationButtonBack, every variant
of the SubscriptionStatusIcon waves, the WhatsNewView pagination
arrows, the back arrow and submenu chevron in CommandsMenuView, the
back arrow in OnboardingCards and ImageFullScreenView.desktop, the
share-profile chevron in NewChatView, and the sent-via-proxy arrow
in CIMetaView and ChatItemInfoView.
DropdownMenu offsets in ChatView (DpOffset(-width, ...)) are left
unchanged: DropdownMenuPositionProvider already negates the content
offset under RTL, and the menus hang from their own anchor boxes.
2026-10-18 02:01:27 +00:00
Evgeny and Evgeny @ SimpleX Chat
139ce5f8cc
core: fix profile creation and update in channels ( #7740 )
...
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-17 19:49:30 +01:00
Evgeny and Evgeny @ SimpleX Chat
77f9f4a464
core: add peer type "agent" ( #7738 )
...
* add agent peer type
* bot types
* agent app icons
* refactor
* smaller image
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-17 19:23:53 +01:00
Evgeny and Evgeny @ SimpleX Chat
9a90d8e230
ci: cache build artifacts for faster builds ( #7730 )
...
* ci: cache build artifacts for faster builds
* test build
* compression
* fix macos-latest
* debug build
* better caching
* test cache
* update build
* test cache
* ci: check toolchain restore
* ci: remove Windows toolchain cache
* ci: skip tests on macOS Intel
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-17 17:12:08 +01:00
spaced4ndy
a932c8298a
buying a badge in the app ( #7587 )
2026-10-16 18:10:25 +00:00
spaced4ndy
a356512645
Merge branch 'master' into badge-in-app-checkout
2026-10-16 22:07:28 +04:00
spaced4ndy
a1529cd33f
core: update postgres schema
2026-10-16 21:40:13 +04:00
spaced4ndy
5a80713699
ci: test the desktop app on Linux runners on request, with an optional Claude session ( #7736 )
2026-10-16 17:34:43 +00:00
spaced4ndy
7c5b6bb3d7
ci: test the iOS app in the simulator on request, with an optional Claude session ( #7737 )
2026-10-16 17:33:50 +00:00
spaced4ndy
c998eb1fee
ios, android, desktop: use the production badge page
2026-10-16 21:30:55 +04:00
spaced4ndy
898c6f1266
ios, android, desktop: choose a badge on the website
2026-10-16 21:07:45 +04:00
sh
aaa388e570
desktop: add emoji picker ( #7708 )
...
* desktop: add emoji picker data and generator
* desktop: emoji picker in compose field
* desktop: document compose emoji picker
2026-10-16 14:34:04 +01:00
spacedandy-agents-simplex
e3324c6828
Merge branch 'master' into badge-in-app-checkout
...
# Conflicts:
# simplex-chat.cabal
# src/Simplex/Chat/Store/Postgres/Migrations.hs
# src/Simplex/Chat/Store/SQLite/Migrations.hs
# src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt
# src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql
2026-10-16 09:40:53 +00:00
sh
fba65d98ee
nodejs: ignore local libs directory ( #7731 )
2026-10-16 09:01:13 +00:00
Evgeny and Evgeny @ SimpleX Chat
5dfe7c1f0e
website: downloads page ( #7728 )
...
* website: downloads page
* bigger headings
* translations
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-15 22:10:59 +01:00
Evgeny and Evgeny @ SimpleX Chat
41f0c429b3
website: update home page ( #7724 )
...
* website: update home page
* update
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-15 12:50:38 +01:00
Evgeny and Evgeny @ SimpleX Chat
e8c98e8231
core, ios: fix notifications for forwarded and channel messages ( #7706 )
...
* plan: add notification flag for forwarded messages
* core, ui: fix notifications for forwarded and relay messages
* improvements
* only send duplicate message event in NSE
* query plans
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-15 08:41:57 +01:00
Simplex Operations
f5b13f608f
packages: release nodejs 7.1.0-beta.6.3 ( #7720 )
2026-10-15 06:18:30 +00:00
Narasimha-sc
23ca3ea42f
desktop: hide SimpleX address and chat preferences rows with no profile and no mobile in use ( #7717 )
2026-10-15 05:37:37 +01:00
Narasimha-sc
000258224c
desktop: fix crash in SimpleX address screen when there is no profile ( #7679 )
...
* desktop: fix crash in SimpleX address screen when there is no profile
* desktop: close SimpleX address screen when there is no profile
* desktop: rerun address screen self-close when its modal is reused or the stack changes
* desktop: close SimpleX address screen only when it is the top modal
* plans: correct address no-profile crash triggers and fix description
* plans: correct address no-profile crash fix description and verification
* plans: tighten address no-profile crash wording
* plans: add self-destruct trigger to address no-profile crash
* plans: qualify self-destruct trigger on desktop
* plans: drop desktop-only title from address no-profile crash
* plans: no connected mobile, not no mobile
* spec, product: document isLastModal and address screen without profile
* plans, spec, product: plan sections, address row spec, GAP-08 and GAP-09
* spec, product, plans: fix GAP-08/09 wording, table placement, ModalManager line
* spec, product: GAP-08/09 accuracy, gap count, clickable ModalManager location
* product, plans: GAP-09 at the level the code supports; qualify picker auto-open
* spec, product, plans: fix GAP-09 locations, stale line links, wording
* spec, product, plans: update plain-text line numbers; GAP-09 read wording
* plans: name the picker auto-open condition
* spec, plans: wording; security note
* plans: self-destruct did not crash on Android master; not a trigger
* plans: self-destruct path possible but unconfirmed; Android recovers silently
* spec, product, plans: drop GAP-09 and unrelated line refreshes
* plan: Android self-destruct path confirmed in logcat
* desktop: close Chat preferences screen when there is no profile, as the address screen does
2026-10-14 22:14:55 +01:00
Evgeny and Evgeny @ SimpleX Chat
c07d28681f
website: update cf links and page ( #7722 )
...
* website: update cf links and page
* noopener
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-14 21:42:51 +01:00
Evgeny and Evgeny @ SimpleX Chat
1b980de198
website: page events ( #7721 )
...
* website: page events
* rename
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-14 20:59:56 +01:00
Evgeny Poberezkin
4c09af0619
tests: fix tests compilation for postgres
2026-10-14 20:08:33 +01:00
sh
489b07ff4f
ci: record package releases in simplex-chat-libs ( #7719 )
...
* ci: use default registries for empty variables
* ci: drop package publish tags
* ci: record releases in simplex-chat-libs
* ci: skip recorded versions in publish plan
* nodejs: raise default test timeout for migrations
* nodejs: print download progress without console.error
* nodejs: use the default timeout in migrating core tests
2026-10-14 15:10:31 +00:00
sh
7c3e516998
badge-service: mount config folder, ignore .env ( #7715 )
2026-10-14 11:13:22 +00:00
sh and spaced4ndy
daa7c4f3d8
badge-service: accept a list of Apple roots ( #7707 )
...
* badge-service: accept a list of Apple roots
* badge-service: document root_certificates
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2026-10-14 10:43:53 +00:00
spaced4ndy
5db181c10e
badge-service: answer Play purchases on a lane of their own ( #7712 )
2026-10-14 10:40:34 +00:00
sh
f65c2da587
nodejs: lazy per-backend libsimplex download ( #7543 )
...
* ci: drop dlltool from nodejs libs release
* nodejs: download libsimplex into the user cache
* nodejs: load libsimplex at runtime per backend
* support bot: select db backend with --db
* python: match backend switch error text
* nodejs: download prebuilt add-on at runtime
* ci: build nodejs add-on for libs release
* calculator bot: load libs and add-on in image
* support bot: document add-on override
* nodejs: keep worker test output free of colors
* nodejs: verify sha-256 of downloaded assets
* python: pin core libs release with sha-256
* ci: add packages release script
* ci: release nodejs add-on and open release PR
* ci: publish packages after release PR
* nodejs: keep npm from building the add-on
* calculator bot: build the add-on in the image
* ci: merge package release workflows
* ci: open release PR when publishing fails
* ci: build the add-on with node-addon-api only
* ci: skip publishing in a called packages workflow
* ci: update package release actions to Node 24
* nodejs: fix receive test timeout
* ci: test packages on pull requests
* nodejs: reuse the database in the close stress test
* ci: keep failed package tests from hanging
* ci: skip preset server tests
* ci: plan package builds from the changes
* ci: test packages with a given libsimplex
* ci: test packages with libsimplex of core changes
2026-10-14 09:53:53 +01:00