Commit Graph

489 Commits

Author SHA1 Message Date
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
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
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
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 Poberezkin
b2f9ee4326 Merge branch 'stable' 2025-07-25 21:16:32 +01:00
Evgeny
7a3b30cca5 core: backward compatible JSON parser for remote controller/host (#6105)
* core: backward compatible JSON parser for remote controller/host

* forward compatible JSON parsers for chats and content
2025-07-25 21:15:46 +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
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
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
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
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
spaced4ndy
6c06200b14 core: create business chat when preparing via contact link data with business flag (#6008)
* core: create business chat when preparing via contact link data with business flag

* add to test

* plans

* ios

* ios
2025-06-23 18:00:21 +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
94d866e2c0 core: fix connecting to prepared group incognito; test connecting to prepared contact incognito (#5994) 2025-06-17 14:20:47 +00:00
spaced4ndy
c08a3e7c4a Merge branch 'master' into short-links 2025-06-17 10:57:11 +04:00
Evgeny Poberezkin
8f9bb4dc5b Merge branch 'stable' 2025-06-16 22:38:43 +01:00
spaced4ndy
3d22b738d8 core: fix change connection user (#5992)
* core: fix change connection user

* plans
2025-06-16 22:38:02 +01:00
spaced4ndy
b0ee13628b core: change user for prepared contact or group (#5985) 2025-06-13 14:38:17 +00:00
spaced4ndy
d293104ce2 core: update short link data (#5983) 2025-06-11 15:53:29 +00:00
spaced4ndy
7f6bc30894 core, ios: track "short link data set" state, interact with address accordingly (#5978) 2025-06-10 15:12:23 +00:00
spaced4ndy
2bc4836338 core, ios: create contact requests with attached contact (#5967) 2025-06-09 16:18:01 +00:00
spaced4ndy
56c8d8696e core: prepare and connect to group (#5964) 2025-06-05 13:16:04 +00:00
spaced4ndy
8a4760a2cb core: set short links data, prepare entity, etc.; ios: connect to prepared contact (#5951) 2025-06-04 07:47:10 +00:00
spaced4ndy
ace7278190 core: short link connection plans wip; short links implementation comments (#5947) 2025-05-27 13:00:52 +00:00
Evgeny
ee2ea152dc core: refactor types for DB entity (#5945) 2025-05-24 21:13:10 +01:00
Evgeny Poberezkin
e8968653ef core: add custom chat event 2025-05-23 10:40:04 +01:00
spaced4ndy
1a80ecfc29 core, ui: allow to delete member support chat; rename reject action (#5927) 2025-05-20 09:07:44 +00:00
Evgeny
a2577c3df3 core: support observers send messages to admins, CLI commands (#5921)
* core: allow observers send messages to admins

* improve parser, CLI command to approve members
2025-05-19 11:14:43 +01:00
spaced4ndy
1f8609a31f core: make member admission forwards compatible (#5893)
* core: make member admission forwards compatible

* cabal file

* schema

* plans

* inserts

* plans
2025-05-12 16:57:20 +01:00
spaced4ndy
79991e84c9 core: member requires attention counter (#5881) 2025-05-09 15:36:06 +00:00
Evgeny Poberezkin
c3bb1e660d Merge branch 'master' into group-knocking 2025-05-05 12:53:05 +01:00
Evgeny
24b0f0290b core: pass event and response error without dedicated constructor (#5869)
* core: pass event and response error without dedicated constructor

* ios: WIP

* android, desktop: update UI for new API

* ios: fix parser

* fix showing invalid chats

* fix mobile api tests

* ios: split ChatResponse to 3 enums, decode API results on the same thread

* tweak types

* remove throws

* rename
2025-05-05 11:51:22 +01:00
Evgeny Poberezkin
92787df8a3 Merge branch 'master' into group-knocking 2025-05-04 23:25:50 +01:00
Evgeny
a0d1cca389 core: split response to two types, to improve iOS parsing memory usage (#5867)
* core: split response to two types, to improve iOS parsing memory usage

* ios: split core events to separate types

* comment

* limit more events to CLI

* fix parser

* simplemq
2025-05-04 22:14:36 +01:00
spaced4ndy
524daf178b Merge branch 'master' into group-knocking 2025-05-02 17:05:40 +04:00
Evgeny
e7a4611be9 ios: deliver notifications even if iOS fails to fire expiration notice, prevent repeat delivery of stale notifications (#5861)
* ios: deliver notification when iOS fails to fire expiration notice for NSE

* update core api

* update ui

* sha256map.nix

* do not enable background processes in maintenance mode

* fix ios

* fix parser

* ios: fix command

* compatible parser for connection ID

* log

* pass DB queue ID

* simplexmq

* query plans

* fix broadcast bot test
2025-05-02 12:23:05 +01:00
spaced4ndy
60bfd9933a core: correctly communicate group acceptance state (#5852) 2025-04-28 06:28:40 +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
9654e193af core: member admission (#5798) 2025-04-03 08:55:32 +00: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