Commit Graph

806 Commits

Author SHA1 Message Date
Evgeny
628b00eb08 core: channel messages (#6604)
* core: channel messages (WIP)

* do not include member ID when quoting channel messages

* query plans

* reduce duplication

* refactor

* refactor plan

* refactor 2

* all tests

* remove plan

* refactor 3

* refactor 4

* refactor 5

* refactor 6

* plans

* plans to imrove test coverage and fix bugs

* update plan

* update plan

* bug fixes (wip)

* new plan

* fixes wip

* more tests

* comment, fix lint

* restore comment

* restore comments

* rename param

* move type

* simplify

* comment

* fix stale state

* refactor

* less diff

* simplify

* less diff

* refactor

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2026-02-12 07:11:59 +00:00
Evgeny Poberezkin
93c45879c9 Merge branch 'master' into chat-relays 2026-01-23 21:51:49 +00:00
Evgeny
5453d8875c core: filter all messages with links in text when link content filter is used (#6591)
* core: change msg_content_tag stored as blob to text

* track if items have links and use has_link when searching for links (MCLink_ MsgContentTag is passed)

* fix test (broken in master)

* merge migrations, update api and schema

* minor fixes

* tests

* update plans

* update migrations
2026-01-23 12:31:42 +00:00
Evgeny Poberezkin
811e3b4e28 Merge branch 'master' into chat-relays 2026-01-21 13:36:32 +00:00
spaced4ndy
bd8ba4d5c6 core: chat relays protocol (#6383)
* core: chat relays protocol wip

* types, notes

* remove file

* removal protocol

* schema

* status

* update

* recovery

* update

* formatting

* rename

* more types

* comment

* more docs

* decrease number of steps

* format

* correct

* update

* update protocol

* update

* typo

* todo

* update doc

* update

* update

* remove added

* update

* update

* XGrpRelayReady

* link to chat relays

* update

* remove from protocol

* update

* json

* wip

* remove comment

* wip

* update

* wip

* wip

* update

* wip

* wip

* plans

* better view

* fix

* fix

* relay acceptance

* rework api

* add relays to link

* comment

* active on con, fix send

* comments

* direct in group plan

* prepare

* member connection wip

* comments

* member connection wip

* fix forwarding

* introduce moderators to new member

* enable relay tests

* plans

* security objectives

* refactor

* add to threat model

* stress test wip

* stress test wip

* Revert "stress test wip"

This reverts commit acde8a1fb3.

* Revert "stress test wip"

This reverts commit 6435808438.

* remove stress test

* improve output

* invert relay fkey

* postgres schema

* comments

* group in progress, remove auto-select relays commented code

* comments

* corrections

* comment

* lint

* redundant import

* core: chat relay request worker (#6509)

* update plans

* strict tables

* core: update group link asynchronously with relay link (#6548)

* update simplexmq

* docs: connection to chat relays rfc (#6554)

* add test for 2 relays (doesn't pass)

* create unknown member in same transaction as checking

* fix relays choosing different memberId (XContactRelay)

* plans, api

* use same incognito profile for relays, connect concurrently, save correct link for plan

* test

* don't duplicate items on group connection

* check relay record exists when joining

* use mapConcurrently when adding relays, update schemas

* fix multi-relay join for postgres (savepoint)

* core: async retry connection to chat relays (#6584)

* update simplexmq

* fix api tests

* prefer throwing temp error on connection

* check group relays when deleting from configuration

* relay_request_err_reason

* relay role

* rename, fix syntax

* plans

* rename, style

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2026-01-21 13:19:06 +00:00
Evgeny
89964bf15a bots: support maintenance option (#6558)
* bots: support maintenance option

* maintenance mode: run pre-start hook, do not create user
2026-01-20 13:28:20 +00:00
spaced4ndy
46629a1c03 Merge branch 'master' into chat-relays 2026-01-09 15:04:53 +04:00
Evgeny
405ce9615e core: support content filter for contacts and notes to allow media galleries (#6552)
* core: support content filter for contacts and notes to allow media galleries

* add api to list chat content types, tests

* query plans, api docs

* add indices
2026-01-09 08:24:26 +00:00
Evgeny
3596c37275 core: improve database concurrency (#6541)
* core: improve database concurrency

* tests: prints on timeouts (#6546)

* update simplexmq

* fix test

* update simplexmq

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2026-01-08 13:43:37 +00:00
spaced4ndy
61de2e3f61 Merge branch 'master' into chat-relays 2026-01-06 15:15:44 +04:00
Evgeny
87e8a10f1e core: use strict tables (#6535)
* core: use strict tables

* fix field types

* change encodings to match schema types; migrate sqlite tables to strict mode

* stabilize postgres client tests, remove slow handshake tests

* update simplexmq

* fix test

* change call_state type to text

* fix directory service queries

* update local_alias for existing schemas

* change types before strict
2026-01-05 08:53:26 +00:00
spaced4ndy
d29fd2dfa6 Merge branch 'master' into chat-relays 2026-01-05 11:31:15 +04:00
Evgeny
f0467aee00 directory service: fix queries (#6539)
* fix directory service queries

* fix

* reduce postgres pool size to 1

* stabilize postgres client tests, remove slow handshake tests

* update simplexmq

* fix test

* test delay
2026-01-04 19:04:32 +00:00
Evgeny
59b31e2631 core: compress commands in remote connection (#5776)
* core: compress commands in remote connection

* backwards compatible compression

* show in CLI if compression is enabled

* use aroundWith for ghc 8.10.7 compatibility

* skip bot API tests in GHC 8.10.7
2025-12-30 07:49:17 +00:00
spaced4ndy
fe4ff8993d core: finalize introductions -> member relations vector stage 2 migration (drop introductions) (#6490)
* core: finalize introductions -> member relations vector stage 2 migration (drop introductions)

* remove comment

* skip down migration check

* fix

* plans

* postgres schema

* skip down migration comparison

* do not drop group_member_intros table, rename migrations

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-12-26 13:29:48 +00:00
Evgeny Poberezkin
b0eb01a8fa Merge branch 'stable' 2025-12-23 14:19:53 +00:00
Evgeny
67fbe62ae1 core: update simplexmq (support any 127.x.x.x address as loopback), show other addresses in CLI during remote connection, update tests (#6526) 2025-12-23 14:16:05 +00:00
spaced4ndy
ae0dec480d Merge branch 'master' into chat-relays 2025-12-12 14:04:31 +04:00
spaced4ndy
caef012003 core: fix support chat deletion (#6271) 2025-12-11 17:29:31 +00:00
Evgeny Poberezkin
99d655f5d3 Merge branch 'stable' 2025-12-10 21:03:56 +00:00
spaced4ndy
f76e994034 core: forward based on relations vector (#6464)
* core: forward based on relations vector wip

* fix introductions

* fix forwarding tests

* fix forwarding inside support scope

* fix deduplication test

* fix more tests

* plans, api

* live migration wip

* enable tests

* member locks

* api

* plans

* fix for postgres

* fix for postgres

* rename predicate

* rename predicate

* optimize

* refactor

* fix

* check

* move part of migration to sql

* plans

* core: preserve detailed information in relation vectors (#6484)

* core: relations vector live migrations; stage 2 migration sql (#6472)

* rework forwarding in support scope

* move operations inside transactions

* set_member_vector_new_relation function

* read vector ad-hoc

* partition in transaction

* fix postgres

* postgres schema

* api

* plans

* remove comment

* lock before migration computation

* refactor

* simplify set relations

* retreive only support scope members

* fix

* refactor

* fix comment

* enable tests

* 1 second

* for update

* locks

* fix mask

* plans

* fix

* postgres

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-12-09 14:48:32 +00:00
sh
efbc4835a8 tests: skip multicast discovery in Mac CI (#6458)
* tests: skip multicast discovery in Mac CI

* tests: remove unneeded xitMacCI''
2025-11-25 10:06:40 +00:00
spaced4ndy
af7540248e core: relations vector operations (#6459)
* core: relations vector operations

* tests

* simplify

* comment

* remove space

* core: use 1 byte for each member-to-member relation (#6462)

---------

Co-authored-by: Evgeny <evgeny@poberezkin.com>
2025-11-24 07:36:44 +00:00
spaced4ndy
a5c6ea8e5d core: member relations vector migration; set index in group for members; rework logic for avoiding duplicate introductions (#6445) 2025-11-19 15:25:09 +00:00
spaced4ndy
9f3b3c69dd ui: allow to delete member's messages when/after removing member (#6443)
* ui: allow to delete member messages

* fix merge category, deleted view

* fix remove items in model

* don't create item repeatedly

* kotlin

* obsolete import

* less delays
2025-11-17 09:41:47 +00:00
spaced4ndy
70e23a04ce ui: allow to block removed member or member that left (#6440) 2025-11-14 09:00:58 +00:00
spaced4ndy
f79f679065 core: change relay link type (#6411) 2025-10-27 14:24:53 +00:00
spaced4ndy
5ddc454049 core: option to run client as chat relay; cli api to get, set relays (#6407) 2025-10-27 12:29:38 +00:00
spaced4ndy
79bdc03529 Merge branch 'master' into chat-relays 2025-10-24 15:32:17 +04:00
spaced4ndy
35963f9c74 core: don't show no connections diff on event (fix tests) (#6403)
* different approach

* fix tests
2025-10-24 12:24:05 +01:00
spaced4ndy
75c2bf920e Merge branch 'master' into chat-relays 2025-10-23 12:37:29 +04:00
spaced4ndy
2badeea19c core: fix deleting user with chat tags (#6374)
* core: fix deleting user with chat tags

* schema, tests

* schema

* update simplexmq

* update ios

* plans
2025-10-23 08:30:36 +01:00
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
spaced4ndy
ad12f840f1 core: don't create and drop postgres db around unit tests (#6350) 2025-10-10 07:40:09 +00: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
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
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
Evgeny
a190d4ea9b website: directory page (#6283)
* website: directory page

* core: use markdown in directory entries

* render markdown on directory page

* update markdown

* toggle secrets on click

* update listings asynchronously

* add group links to the listing

* cleanup

* better directory layout with pagination

* script to run website

* update page navigation

* search

* readable markdown colors, better "read less"

* core: atomic update of directory listings, to avoid files unavailable

* fix symlink, sort entries on page with new first

* update listings every 15 min, add activeAt time

* fix sorting in the page and listing url

* replace simplex:/ links on desktop
2025-09-20 19:47:50 +01:00
Evgeny
429ec9d21a directory: listings for web pages (#6281)
* directory: listings for web pages

* refactor

* tests
2025-09-18 17:52:47 +01:00
Evgeny
c07c176896 core: batch load queues for subscriptions with PostgreSQL client (#6272)
* core: batch load queues for subscriptions with PostgreSQL client

* update simplexmq

* fix, update simplexmq

* update query plans
2025-09-16 21:58:28 +01:00
Evgeny Poberezkin
e9961ebb8e Merge branch 'stable' 2025-09-15 14:04:11 +01:00
Evgeny
fa9bc1537c cli: option to disable backup or change backup directory on migration (#6267)
* cli: option to disable backup or change backup directory on migration

* update nix

* update simplexmq
2025-09-14 14:41:50 +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