Commit Graph

550 Commits

Author SHA1 Message Date
Evgeny
99c919427f ui: extended network error information (#6250) 2025-09-08 10:11:02 +01:00
spaced4ndy
ca9b0d4e43 core, ui: correct member attention stat for support chat on opening it; mark support chat read (#6240) 2025-09-05 14:00:32 +00:00
spaced4ndy
9705ae15ea ui: fix report archiving (#6239)
* kotlin: fix report archivation

* ios wip

* surrogate reports scope

* refactor
2025-09-05 12:38:26 +01:00
spaced4ndy
9d65b9eb2b ui: navigation from support chat to member info (#6237) 2025-09-03 13:07:28 +00:00
spaced4ndy
0d22280358 core: forward member name; ui: don't show "Member" label if unknown member was created with name (#6211) 2025-08-22 09:53:21 +00:00
Evgeny
dc3dcd4fc8 core, ui: safe mode to sanitize URIs when sending (#6196)
* core: safe mode to sanitize URIs when sending

* ui: use safe sanitize when sending
2025-08-18 12:58:10 +01:00
Evgeny
fb8d8ec7c3 core, ui: chat relay addresses (#6191) 2025-08-15 17:37:10 +01:00
Evgeny
12f0bd51c5 core, ui: improve removing tracking parameters (#6170)
* core: make URI sanitizer less zealous

* simplify

* subdomains

* update rule

* make "remove link tracking" option disabled by default
2025-08-10 12:38:34 +01:00
Evgeny
ef60ceea12 core, ui: markdown for hyperlinks, warn on unsanitized links, option to sanitize sent links (#6160)
* core: markdown for "hidden" links

* update, test

* api docs

* chatParseUri FFI function

* ios: hyperlinks, offer to open sanitized links, an option to send sanitized links (enabled by default)

* update markdown

* android, desktop: ditto

* ios: export localizations

* core: rename constructor, change Maybe semantics for web links

* rename
2025-08-09 10:52:35 +01:00
Evgeny
4811d663e6 rfc: bot messages and buttons, core: command markdown, supported commands in profile preferences, chat sessions preference, peer type field in profile to identify bots (#5360)
* rfc: bot messages and buttons

* update

* update bot rfc

* core: add bot commands to chat preferences and peer type to profile

* update postgresql schema

* update query plans

* chat sessions preference

* markdown for bot commands

* schema

* core: file preference, options to create bot from CLI

* core: different command type

* ios: commands menu

* update types

* update ios

* improve command markdown

* core, ios: update types

* android, desktop: clickable commands in messages in chats with bots

* android, desktop: commands menu

* command menu button, bot icon

* ios: connect flow for bots

* android, desktop: connect flow for bots

* icon

* CLI commands to view and set commands, remove "hidden" property of command, bot api docs

* corrections

* fix inheriting profile preferences to business groups

* note on business address

* ios: export localizations

* fix test

* commands to set file preference on user/contact, tidy up layout and display of command and attachment buttons
2025-08-07 11:13:35 +01:00
Evgeny
bdb18b2941 core: forward compatible format encoding (for remote desktop) (#6147)
* core: forward compatible format encoding (for remote desktop)

* fix ios
2025-08-02 16:10:15 +01:00
spaced4ndy
f42a6751b1 core: allow to manually accept member contact requests (#6129)
* core: allow to manually accept member contact requests

* response

* comment

* comment

* add fields

* fix

* field in request

* compiles

* fix tests

* test

* plans

* fix mobile tests

* fix doc tests

* renames

* group name in event

* fix renames

* tests

* plans

* rename selector

* ios wip

* fix

* ios wip

* move

* fix backend bug, ui

* reject dialogue

* update plans

* kotlin

* delete swipe

* should accept text

* rename

* postgres migration

* ios: pass chat as binding

* rename module

* fix queries

* schema

* update plans, api docs

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-08-01 10:18:29 +01:00
spaced4ndy
e9a3eb8f10 core: fix retrying connection via contact card (preset contacts) (#6104)
* core: fix retrying connection via contact card (preset contacts)

* ios

* kotlin

* banner
2025-07-25 17:31:05 +01:00
spaced4ndy
7b7926a73e core, ui: allow to choose disappearing messages ttl in user profile (#6097) 2025-07-24 14:52:48 +00:00
spaced4ndy
68b7f09c8f core, ui: chat banner (#6089)
* core: create banner item

* filter deletions

* fix query

* ios

* fixes

* remove comment

* revert diff

* refactor

* fix most tests

* fix tests

* spacer

* plans

* create banner for 1-time link initiator

* style in progress

* change background

* ui

* remove bio length limit

* ui

* create banner for client chat

* rename

* more contexts

* fix tests

* move

* fixed image size

* plans

* remove diff

* kotlin

* copy

* paddings

* paddings

* comment

* layout, messages

* fonts

* texts, icons

* kotlin refactor

* kotlin texts

* fix date

* Revert "fix date"

This reverts commit abbd48b334.

* date

* fix texts

* kotlin date

* color and corners

* kotlin

* color

* update banner, context menu in ios

* update texts, do not show epoch timestamp for banner

* fix texts

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-07-21 19:07:21 +01:00
Evgeny
df68edde56 ui: fix deleted contact showing as ready to connect (#6071) 2025-07-14 16:30:15 +01:00
Evgeny
dd3943d994 core, ios: allow moderators to delete messages and block members (#6064)
* core: allow moderators to delete messages and block members

* ios: moderator
2025-07-14 08:02:29 +01:00
Evgeny
a5768e903d core, ui: short bio/description for contact and group profiles (#6055)
* core: short bio/description for contact and group profiles

* use short description in commands

* fix tests

* query plans

* ios: show contact and group profile descriptions

* android, desktop: short description/bio

* ui: layout for chat info, correct copy

* comment out fields to add/edit short descriptions

* remove short description from events

* postgres schema
2025-07-11 21:28:10 +01:00
Evgeny
fa5927ddaa ui: whats new v6.4 (#6049) 2025-07-07 17:44:29 +01:00
Evgeny
88547ab704 core: use longer timeouts for background network requests, support retries with increased timeouts (#6043)
* core: use longer timeouts for background network requests, support retries with increased timeouts

* ios: update types

* ios: allow user retry actions with failed network requests

* build: add exporting API functions with retry

* android, desktop: update types and C APIs

* android, desktop: alert to retry action on network error

* simplexmq
2025-07-07 11:01:03 +01:00
spaced4ndy
2dd54c6697 core, ui: prohibit changing profile for prepared entity when first attempt to connect failed (#6037)
* core: prohibit changing profile for prepared entity when first attempt to connect failed

* reuse incognito

* schema

* ios

* postgres schema

* ios

* reenable tests

* kotlin

* update alert

* rename predicate, combine queries

* send the correct incognito mode, fail on attempt to change mode for prepared connection

* query plans

* ui: show group connecting status

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-07-05 11:09:10 +01:00
spaced4ndy
fc98558a37 core: refactor connectViaContact (#6034)
* core: refactor connectViaContact

* true, comment

* optimize connectViaContact for prepared entities

* refactor Connection

* refactor pcc

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-07-04 09:47:40 +00:00
spaced4ndy
79041390f1 core: allow to accept contact requests after address is deleted (#6032)
* core: allow to accept contact requests after address is deleted

* update

* update

* plans

* ios, postgres migration

* schema

* request lock, refactor

* update simplexmq

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-07-03 10:34:11 +00:00
Evgeny
0d875c72a3 ios: alerts to open known/prepared contact and groups (#6020)
* ios: alerts to open known/prepared contact and groups

* android, desktop: alerts for knonw chats; all ui: fix prepared contacts misinterpreted as contact cards
2025-06-30 22:02:45 +01:00
Evgeny
524de4067a core: add/send contact address and request messages, ios: use auto-reply as welcome message (#6017)
* core: add/send contact address and request messages, ios: use auto-reply as welcome message

* revert event type change

* fix test, type

* multiplatform: update type

* fix query

* ios: hide keyboard when sending the message

* failing test for business chat with a welcome message

* retry joining via contact address

* query plans

* do not send history to the first member (the original customer) of business chat

* correctly handle retries when joining groups, do not create a new connection on retry

* failing test for group welcome message and feature items

* do not send history item if member saw it during joining (based on welcomeSharedMsgId in join request)

* correct fields in PendingContactConnection, update plans

* prevent duplicate group description created in chat, while ensuring that it is created

* fix query
2025-06-30 11:54:13 +01:00
spaced4ndy
e31e8a6def desktop, android: update types, context user picker, rework address settings, align previews UI (#6016) 2025-06-27 15:43:44 +00:00
Evgeny
1702f5ce34 core: fix retry when connecting via invitation short link, ios: improve connection status usage (#6014)
* core: fix retry when connecting via invitation short link

* ios: fix conditions, mark contacts as connected, only show spinners on contacts when connection status is ready or sndReady
2025-06-26 20:06:22 +01:00
Evgeny
8b770ca03e ios: better error handling when connecting via links, improve alerts with chat information (#6012)
* simplexmq

* ios: error handling

* better new chat alerts

* vertical buttons in alert when they dont fit

* allow messages in prepared groups
2025-06-26 12:10:06 +01:00
Evgeny
c0b704f846 core: store welcome and request message IDs, ios: fix sending request without messages, trim sent messages (#6009)
* core: store welcome and request message IDs, ios: fix sending request without messages, trim sent messages

* remove comments

* rename, fix tests

* simplexmq

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2025-06-25 16:59:32 +01:00
Evgeny
9794829d74 core: show group as sender, add contact card to contact request chats, unify api type for prepared and contact request chats (#6003)
* core: option to show group as sender of chat item (for the initial items, e.g. welcome message)

* add chat item to contact request chats

* return AChat for prepared chats and contact requests

* update iOS api types, show prepared contact as blue, show preview info when content message is not available (previously was showing feature item)

* ios: remove ContactType

* ios: show group as sender, fix avatar not showing when member message sequence starts with merged items

* ios: update compose UI for all connection scenarios

* address settings

* ios: address settings UI

* fix tests

* fix tests 2

* ios: fix minor issues
2025-06-23 14:42:00 +01:00
Evgeny
fc04872c91 core: chat item content types for chat initiation (#5998)
* core: chat item content types for chat initiation

* connection mode for ui

* padding

* simplexmq

* initial items

* update content items

* core: feature and e2e items

* refactor

* chat items

* ios types

* fix condition for PQ encryption of link
2025-06-20 11:54:21 +01:00
Evgeny
289b5ffffe core: fix updating invitation link data, use flexible link data encoding for backward/forward compatibility (#5988)
* core: fix updating invitation link data

* ghc 8.10.7 type annotation

* update link data encoding to use long strings for user data

* update encoding

* fix test

* update simplexmq

* rename field

* simplexmq

* remove comments

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2025-06-16 12:31:37 +01:00
spaced4ndy
b0ee13628b core: change user for prepared contact or group (#5985) 2025-06-13 14:38:17 +00:00
spaced4ndy
2bc4836338 core, ios: create contact requests with attached contact (#5967) 2025-06-09 16:18:01 +00:00
spaced4ndy
56c8d8696e core: prepare and connect to group (#5964) 2025-06-05 13:16:04 +00:00
spaced4ndy
8a4760a2cb core: set short links data, prepare entity, etc.; ios: connect to prepared contact (#5951) 2025-06-04 07:47:10 +00:00
spaced4ndy
ca9f6267e4 ui: check member supports support chat (#5926) 2025-05-19 17:05:07 +00:00
spaced4ndy
b0547cf6f7 Merge branch 'stable' 2025-05-19 20:02:49 +04:00
Evgeny
7b362ff655 ui: label in compose when user cannot send messages (#5922)
* ui: label in compose when user cannot send messages

* gray buttons when user cannot send messages

* improve

* kotlin

* fix order

* fix alert

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2025-05-19 14:50:33 +00:00
spaced4ndy
041807c870 core: decrease membersRequireAttention counter when member is deleted or leaves (#5919) 2025-05-16 15:03:15 +00:00
spaced4ndy
db1ffb2cf2 core: create "accepted by you" item for moderator (#5901) 2025-05-13 12:35:54 +00:00
spaced4ndy
e9414d713e Merge branch 'master' into group-knocking 2025-05-13 13:05:48 +04:00
Evgeny
4b42a19ccb ios: fix XCode 16 regressions (tap not working on files, quotes, images, voice messages, etc.), open link previews on tap (#5880)
* ios: fix XCode 16 regressions (tap not working on files, quotes, images, voice messages, etc.), open link previews on tap

* fix voice recording

* fix video, accepting calls from chat, preference toggles in chat

* WIP message and meta

* handle links in attributed strings

* custom attribute for links to prevent race conditions with default tap handler
2025-05-10 14:37:45 +01:00
spaced4ndy
79991e84c9 core: member requires attention counter (#5881) 2025-05-09 15:36:06 +00:00
spaced4ndy
2a9df3e10b ui: knocking UI improvements (texts, icons, layout, chat view shortcut split toolbar, set admission on creating group) (#5879) 2025-05-08 13:44:55 +00:00
spaced4ndy
79dadabf61 Merge branch 'master' into group-knocking 2025-05-07 13:48:55 +04:00
Evgeny
05de019ecd ios: deliver notifications instantly when server has no more messages and better concurrency (#5872)
* core: return error and message absence when getting notifications

* ios: do not wait for notification messages when server says "no"

* do not postpone some notification events, comments

* refactor

* simplexmq (mapM)

* simplexmq (release lock)

* ios: inline, more aggressive GHC RTC settings for garbage collection

* simplexmq

* corrections

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>

* refactor ntf delivery

* ios: 6.3.4 (build 274)

* simplexmq (fix updating last ts)

* improve notification for multiple messages

* simplexmq

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2025-05-07 07:33:00 +01:00
Evgeny Poberezkin
c3bb1e660d Merge branch 'master' into group-knocking 2025-05-05 12:53:05 +01:00
Evgeny
24b0f0290b core: pass event and response error without dedicated constructor (#5869)
* core: pass event and response error without dedicated constructor

* ios: WIP

* android, desktop: update UI for new API

* ios: fix parser

* fix showing invalid chats

* fix mobile api tests

* ios: split ChatResponse to 3 enums, decode API results on the same thread

* tweak types

* remove throws

* rename
2025-05-05 11:51:22 +01:00
Evgeny Poberezkin
92787df8a3 Merge branch 'master' into group-knocking 2025-05-04 23:25:50 +01:00