Commit Graph

154 Commits

Author SHA1 Message Date
spaced4ndy 67461d6971 core: manage chat relays initial (#6369) 2025-10-20 08:12:45 +00:00
spaced4ndy a65151ba6d core, ui: replace map of network statuses with subscription status of current chat (#6353)
* core: subscription status wip

* update

* update

* update

* remove statuses core

* cleanup ios

* comment

* plans

* remove NetworkStatus

* ios wip

* contact sub status

* Revert "contact sub status"

This reverts commit 50cf94beed.

* sub status

* set on connected

* kotlin

* rename

* layout

* member status

* kotlin

* fix chat subscription status

* string

* core: update simplexmq

* client notices

* update simplexmq

* update alert

* update simplexmq

* android/desktop

* formatting

* fix tests

* update plans and API docs

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-10-18 22:53:47 +01:00
Evgeny f21ef8f55d core: send updated profile to group when bio changes (#6352)
* core: send updated profile to group when bio changes

* redact short links from descriptions where group preferences prohibit them
2025-10-10 17:29:12 +01:00
Evgeny e291a71ef3 core: do not add entities to batched agent errors (#6351) 2025-10-10 13:54:19 +01:00
spaced4ndy 37c8aca3b3 core: sync connections (#6345)
* core: sync subsbriptions

* sha map

* sync event

* should delete flag

* wip

* schema

* wip

* delete

* update simplexmq

* plans

* rename, adapt

* update

* plans

* option to show ids

* plans

* fix, test

* more tests

* postgres

* plans

* cleanup

* plans

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-10-10 06:27:50 +00:00
Evgeny 65e215509b core: subscribe all queues (#6347)
* core: subscribe all queues

* tests, plans, fixes

* enable tests
2025-10-09 22:46:42 +01:00
spaced4ndy d9b38317fb core: don't save introduction links (#6341) 2025-10-07 07:16:56 +00:00
spaced4ndy 8497d4ff48 core: update group short link data on receiving x.grp.info (#6328) 2025-10-03 11:05:30 +00:00
spaced4ndy 17a0c1b53d core: delivery in channels (#6278)
* core: channels delivery (#6274)

* core: optimize member retrieval query for postgres (#6280)

* core: optimize reading only relays for sending in channels (#6282)

* fixes

* plans
2025-10-01 15:53:27 +00:00
Evgeny eca2937be1 core: backward compatible JSON decoding (#6322) 2025-09-30 23:05:12 +01:00
spaced4ndy c782e6762b feature branch: optimize subscriptions (#6297)
* core: remove contact merge, obsolete group code (#6292)

* core: remove file connections (#6298)

* core: rename migration

* corre: remove unused contacts merged event (#6308)

* core: optimize subscriptions (#6304)

* core: remove conn ids map from subscriptions (#6309)

* rename migration (#6316)

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-09-28 21:31:59 +01:00
Evgeny 015d5de364 directory: move all storage to the database, optimize performance (#6287)
* core: add custom indexed columns to groups and contacts

* directory: use database (TODO search/listing)

* triggers to maintain current member count

* update simplexmq, fix tests, use summary from GroupInfo

* fix all directory tests

* remove acceptance fields from group reg

* enable all tests

* clean up

* postgres migrations, fixes

* query plans

* use function in postgres triggers, improve sqlite query

* fix export/import

* update schema

* prevent admins from promoting groups when approving

* update listing every 5 minutes
2025-09-28 15:11:49 +01:00
spaced4ndy 382241fe3e core: rework synchronous group forwarding in receive loop into asynchronous delivery tasks (#6178) 2025-09-12 13:22:34 +00:00
Evgeny 5ebd8cc193 core: fix GHC 8.10.7 (#6248) 2025-09-07 22:20:27 +01:00
Evgeny 8798ede50a core: extended network errors information (simplexmq) (#6247)
* core: extended network errors information (simplexmq)

* fix test

* docs: add NetworkError to bot API types

* update simplexmq - JSON encoding for missing NetworkError
2025-09-07 15:07:21 +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
Evgeny f6c699f3a5 core: update simplexmq (error handling) (#6231)
* core: update simplexmq (error handling)

* update simplexmq
2025-08-29 10:05:20 +01: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
spaced4ndy 0046fc27fe core: fix member version range not being correctly updated in some cases (fixes introducing owner to member in review, when host admin was invited via owner's link; likely fixes other interactions that check version) (#6208)
* core: fix introducing owner to member in review

* fix

* remove diff

* unfocus

* plans
2025-08-20 12:00:11 +01:00
spaced4ndy c5e05a10c0 core: fix duplicate error on group link creation (#6204)
* core: fix duplicate error on group link creation

* fix

* fix
2025-08-19 17:17:47 +01:00
spaced4ndy b607b629a6 core: fix forwarding for connection deleting events (x.grp.mem.del, x.grp.del) (#6189)
* core: fix forwarding for connection deleting events (x.grp.mem.del, x.grp.del)

* more tests

* docs, mute tests

* plans

* rework wip

* improve tests

* revert plans

* only forward original message

* update simplexmq (err context)

* update

* don't always wait delivery

* don't do unnecessary ack

* docs

* Revert "don't do unnecessary ack"

This reverts commit 1a560b0333.

* ack

* update simplexmq
2025-08-18 12:58:25 +01:00
Evgeny fb8d8ec7c3 core, ui: chat relay addresses (#6191) 2025-08-15 17:37:10 +01:00
spaced4ndy 16ed5bcb57 core: save correct body for received message record, instead of full batch body (#6188) 2025-08-14 16:41:04 +00:00
spaced4ndy c94e3301ad core: fix member contact request not showing incognito correctly (#6174)
* core: fix member contact request not showing incognito correctly

* comment
2025-08-11 13:22:30 +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
spaced4ndy 18a00511a7 core: set via_group_link_uri for groups (#6137)
* core: set via_group_link_uri for groups

* schema

* plans

* schema

* add to type

* plans, api
2025-08-01 16:23:52 +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 baf12207d5 core: prohibit connecting via direct message for blocked members (#6124) 2025-07-29 08:42:39 +00:00
Evgeny 7988463a47 core: store/get whether short link has large data set (#6120)
* core: store/get whether short link has large data set

* ui

* core: set shortLinkLargeDataSet flag in updated links

* remove largeLinkData

* remove instance
2025-07-28 16:49:13 +01:00
spaced4ndy 5de9bf7f2b core: fix duplicate banner when connecting to member contact (#6118) 2025-07-28 09:37:14 +00: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
Evgeny cf8bd7f6ac docs: bots API (#6091)
* docs: bot API commands

* generate API commands doc

* generate commands docs with parameters and responses

* add API types

* more types

* document all types (with some deviations from JSON encodings)

* rename types

* interface objects

* separator

* command syntax

* more syntax

* API events

* event types

* fix all type definitions

* pre-process types outside of rendering

* pre-process event types

* overview

* pre-process commands

* param syntax WIP

* syntax for types in command parameters

* API error response and chat event

* remove unsupported/deprecated command parameters

* reorder

* syntax for choice

* show command errors

* event descriptions

* python syntax for commands and types (#6099)

* python syntax for commands and types

* python snippets: convert numbers to string

* fixes

* update readme, enable all tests

* fix operators test

* update plans

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2025-07-24 13:12:53 +01: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
spaced4ndy a94c3d9f39 core: don't create duplicate feature items when being accepted to prepared group with member review (#6074) 2025-07-15 09:15:47 +00:00
Evgeny 1e73eb512a core: fix connection plans to allow re-connecting to address after the contact with address in profile was deleted (#6073) 2025-07-14 22:37:39 +01:00
spaced4ndy ed6ef02eeb core: add group forwarding tests (#6067) 2025-07-14 10:52:38 +00: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 Poberezkin 362bdc3282 core: update contact cards 2025-07-12 19:46:34 +01:00
spaced4ndy 8094078bee core: improve message forwarding to better manage support scopes (#6056)
* core: test forwarding in support scope

* wip

* test

* add to test

* comment

* rework forwarding

* fixes

* refactor tests

* narrow

* forwardMsgs

* support mem

* unfocus tests

* fix, tests

* plans

* add test

* comment

* add scope to reaction and deletion, refactor

* fix del

* refactor

* query plans

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-07-12 19:39:41 +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 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
Evgeny f2e8545c0a core: fix plans for deleted contacts and groups to allow connecting to them again (#6041)
* core: fix plans for deleted contacts and groups to allow connecting to them again

* improve, tests

* query plans

* remove comment
2025-07-05 21:45:07 +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 d8636953d3 core: connection plans for short links recognize prepared contacts/groups (#6019)
* core: connection plans for short links recognize prepared contacts/groups

* query plans
2025-06-30 16:12:07 +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
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