Commit Graph

800 Commits

Author SHA1 Message Date
shum
d7010d5271 core: fix flaky testDisableCIExpirationOnlyForOneUser for cleanup manager timing 2026-02-19 07:39:50 +00:00
shum
004869de80 core: fix flaky testGroupMemberReports for async broadcast delete events 2026-02-19 07:29:39 +00:00
shum
932f2bb998 core: fix flaky testGroupHistoryQuotes for non-deterministic connected item ordering 2026-02-19 07:29:36 +00:00
shum
8405bfe8f5 core: fix flaky testAppSettings for virtual terminal getDiff race
Long command echo may be split by virtual terminal getDiff when
readTerminalOutput observes intermediate window states between
individual termCommand atomically blocks. Skip echo check for long
commands and search for the expected response instead.
2026-02-19 06:33:45 +00:00
shum
a65e75402c core: fix flaky group tests for non-deterministic message ordering 2026-02-18 16:35:56 +00:00
sh
764fb27f1c core, directory: allow voice messages during member approval phase to allow audio captchas in groups that prohibit voice messages (#6624)
* rfcs: add member-support-voice rfc

* update based on the feedback

* implement RFC

* add new tests

* fix protocol tests and update plans

* restrict voice captcha exemption to host approval phase

* update agent_query_plans.txt
2026-02-14 09:26:18 +00:00
sh
279119e134 simplex-directory-service: add audio captcha (#6619)
* simplex-directory-service: add audio captcha

* add plan

* updated plan

* implement changes

* add tests with coverage

* add tests

* implement further changes

* directory tests overview

* fix tests on 8.10.7

* /audio command toggles between text and voice captcha

* core: /audio enables voice captcha, retry sends both image and voice

* remove irrelevant directory service tests

* fix flaky testJoinGroup message ordering
2026-02-07 13:29:41 +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
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
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
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
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
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
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
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
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
Evgeny
e2d5c675d0 bots: generate code for TypeScript types module from Haskell tests (#6220)
* bots: generate code for TypeScript types module from Haskell tests

* types for API events and command responses

* code for chat command types

* license, readme

* fix array types

* fix more types

* add response type

* add Connect command to docs/ts

* update typescript client package to use auto-generated types
2025-08-26 16:38:27 +01:00
Evgeny
78b4431dea directory: use bot commands and menu in SimpleX Directory (#6219)
* directory: use bot commands and menu in SimpleX Directory

* rename (remove hyphen), fix test
2025-08-25 07:51:53 +01: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
5b0d0f19ce core: add tests for forwarding of connection deleting events in support scope (#6197) 2025-08-18 15:14:39 +00: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
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