Commit Graph

783 Commits

Author SHA1 Message Date
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
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
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
317cbd3785 tests: fix type (#6146)
* tests: fix type

* fix for ghc 8.10.7
2025-08-02 15:24:30 +01:00
Evgeny
fe652fb56c directory bot: fix group ID for short link upgrade (#6134)
* directory bot: fix group ID for short link upgrade

* split link to separate message

* enable all tests
2025-08-01 16:24:26 +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
Evgeny
81b61f2473 directory bot: use short links, command /link to upgrade group link (#6130)
* directory bot: use short links, command /link to upgrade group link

* test

* enable all tests

* update comparison for scenario when only link changed

* use DB IDs when listing groups registered by admins
2025-07-31 12:15:43 +01: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
749f6adc00 core: fix queries so they work for postgres (#6103) 2025-07-25 10:44:19 +00:00
spaced4ndy
d69511bcad core: improve indexes (#6095)
* core: improve indexes

* update plans

* queries

* postgres migration

* optimize query

* lint

* plans

* add indexes

* schema

* plans

* postgres schema

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-07-24 23:36:08 +01: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
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
a25c44494e core: revert member filter change, fix text (#6062) 2025-07-13 11:46:51 +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