Commit Graph

137 Commits

Author SHA1 Message Date
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
spaced4ndy 2f1816ca32 Merge branch 'master' into chat-relays 2026-01-15 19:18:57 +04:00
spaced4ndy 2d64365d8c core: correctly handle errors in createWithRandomId/Bytes for postgres (reuse withSavepoint from simplexmq) (#6578) 2026-01-15 15:18:15 +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 d29fd2dfa6 Merge branch 'master' into chat-relays 2026-01-05 11:31:15 +04: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
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
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 67461d6971 core: manage chat relays initial (#6369) 2025-10-20 08:12:45 +00: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
spaced4ndy 382241fe3e core: rework synchronous group forwarding in receive loop into asynchronous delivery tasks (#6178) 2025-09-12 13:22:34 +00: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 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 5de9bf7f2b core: fix duplicate banner when connecting to member contact (#6118) 2025-07-28 09:37:14 +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
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 a0ea2ede9e core: safely read preview chat item to avoid missing chat preview (#6080) 2025-07-15 14:00:56 +00: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
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
spaced4ndy cc643e5aeb core: rework contact requests so that they are always created with entity (#6011)
* core: rework contact requests so that they are always created with entity

* remove group requests (revert)

* fix schema

* remove accepted, set xcontactId

* enable tests

* fix deduplication, fix address deletion

* fix business ldn

* disable, add tests

* comments, schema

* cleanup

* fix

* plans
2025-06-26 11:05:23 +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
spaced4ndy 29e06d7878 Merge branch 'master' into short-links 2025-06-11 20:31:54 +04:00
spaced4ndy 2bc4836338 core, ios: create contact requests with attached contact (#5967) 2025-06-09 16:18:01 +00:00
Evgeny Poberezkin cd47b409c8 Merge branch 'stable' 2025-06-09 13:18:27 +01:00
Evgeny 50dfda6c09 core: fix deletion queries for PostgreSQL client (#5969)
* core: fix deletion queries for PostgreSQL client

* disable test in posrgres

* plan
2025-06-08 18:27:42 +01:00
spaced4ndy e84016e1b9 core, ui: update group scope unread stats on item deletions; create reports as read (reports use a different attention mechanism) (#5930) 2025-05-20 16:18:23 +00:00
spaced4ndy e29a9371b6 core, kotlin: open support chat with any member (#5904) 2025-05-13 16:29:47 +00:00
spaced4ndy 9190c2a772 core: reset unanswered counter for support chats with members only if moderator message is newer (#5889) 2025-05-12 12:19:20 +00:00
spaced4ndy 79991e84c9 core: member requires attention counter (#5881) 2025-05-09 15:36:06 +00:00
spaced4ndy f5926e8b84 core, ui: update chat ts and pop chat for group on messages for secondary chat scope (#5878) 2025-05-08 08:22:46 +00:00
spaced4ndy 5262b8caca core: support chat unread stats (#5844) 2025-04-23 14:15:17 +00:00
spaced4ndy 805a69da94 android, desktop: group knocking (#5816) 2025-04-21 15:17:21 +00:00
spaced4ndy 3095b980cb Merge branch 'master' into group-knocking 2025-04-15 19:27:36 +04:00
Evgeny 45e395d35a core, ui: short connection links with stored data (#5824)
* core, ui: optionally use short links (#5799)

* core: optionally use short links

* update test

* update simplexmq, short group links

* fix query

* fix parser for _connect

* ios: use short links

* shorten links to remove fingerprint and onion hosts from known servers

* fix parser

* tests

* nix

* update query plans

* update simplexmq, simplex: schema for short links

* simplexmq

* update ios

* fix short links in ios

* android: use short links

* fix short group links, test short link connection plans

* core: fix connection plan to recognize own short links

* update simplexmq

* space

* all tests

* relative symlinks in simplexmq to fix windows build

* core: improve connection plan for short links (#5825)

* core: improve connection plan for short links

* improve connection plans

* update UI

* update simplexmq

* ios: add preset server domains to entitlements, add short link paths to .well-known/apple-app-site-association

* update simplexmq

* fix group short link in iOS, fix simplex:/ scheme saved to database or used for connection plans

* update simplexmq

* ios: delay opening URI from outside until the app is started

* update simplexmq
2025-04-14 21:25:32 +01:00
spaced4ndy d85ac4af04 core: member support chat stats (#5803)
* core: member support chat stats

* schema

* update counts

* mark read wip

* dec counts on read

* rename

* plans

* test, fixes

* plans

* refactor

* rename

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-04-05 12:25:45 +01:00
spaced4ndy be1c4018cc core: group knocking main functionality (#5726)
* docs: knocking rfc

* types, schema wip

* more comments

* rename

* more types

* change types

* wip compiles

* construct snd scope

* fix tests

* hide output

* sending

* fix member filtration

* plans

* conversations store/api model draft

* xgrpmemnew

* rework types wip

* wip

* wip

* remove tag

* wip (compiles)

* fix parsing

* fix query

* fixes, tests

* plans, comments

* fix member filtration

* wip

* protocol wip

* protocol wip

* fix

* fix tests

* fixes, test

* fix (remove NotInHistory)

* fix

* fix tests

* fix

* output

* fix tests

* tests

* gcsi in view

* fix tests

* plans

* refactor, make scopes Maybe

* remove groupChatFilter

* fix test

* change schema

* refactor

* rename

* rename

* rename

* refactor

* rename

* remove scope from item direction

* rework view

* change apis

* make api for cli

* change text

* refactor

* fixes

* comment

* rename

* refactor fmap/mapM

* refactor includeInHistory

* query plans

* knocking: patch scope (#5796)

* knocking: patch scope wip

* more patches

* schema

* remove space

* plans

* fix test

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-04-02 07:57:18 +00:00
Evgeny a6631ce629 core: delete members with messages (#5711)
* core: delete members with messages (WIP)

* remove messages

* fix, test

* update query plans
2025-03-07 07:47:32 +00:00
Evgeny b2de37a9fb core: member acceptance (#5678)
* core: member acceptance

* migration

* move hook

* core: support sending direct messages to members (#5680)

* fix compilation, todos

* fix test

* predicates

* comment

* extend hook

* wip

* wip

* wip

* wip

* fix test

* mute output

* schema

* better query

* plans

* fix test

* directory

* captcha

* captcha works

* remove column, add UI types and group status icon

* fix test

* query plans

* exclude messages of pending members from history

* commands for filter settings

* core: separately delete pending approval members; other apis validation (#5699)

* accepted status

* send captcha messages as replies

* fix blocked words

* simpler filter info

* info about /filter and /role after group registration

* update query plans

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2025-03-03 18:57:29 +00:00
Evgeny b482d4d812 core: fix search in chat (#5677) 2025-02-27 07:38:40 +00:00
Evgeny 511ff1d35c cli: remove multiple members (#5656)
* cli: remove multiple members

* accept all members joining via link as observers (do NOT release)

* blocked words

* blocked words

* XGrpLinkReject

* core: 6.3.0.6 (simplexmq 6.3.0.6)

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2025-02-26 09:25:54 +00:00
Evgeny 205ced1c1d core, ui: report preference (#5620)
* core: report preference

* fix tests

* ios: disable reports toggle until 6.4

* android, desktop: reports preference

* ui: section

* boolean
2025-02-10 09:06:16 +00:00
Evgeny ff35643533 core: api to archive reports (#5618)
* core: api to archive reports

* fix queries

* query plans

* fix test
2025-02-09 19:16:30 +00:00
Evgeny 9c28a51fee core: fix mentions "disappearing" on reactions (#5617) 2025-02-09 12:39:48 +00:00
Evgeny 82dffd55a9 core: fixes for mentions (initial chat load, update mentions, markdown) (#5603)
* core: fix mentions markdown

* test

* core: fix initial load for the first unread item

* core: fix updating messages with mentions

* fix CPP

* query plans
2025-02-03 08:55:46 +00:00