Evgeny Poberezkin
bfb274b037
Merge branch 'stable'
2024-01-15 13:52:09 +00:00
Evgeny Poberezkin
8d7dcb550a
core: update simplexmq, optimize batching, remove builder ( #3685 )
...
* core: update simplexmq (optimize batching, remove builder)
* do not use builder to batch
* refactor
2024-01-15 10:46:13 +00:00
spaced4ndy
478bb32cdb
core: send group description to new members as welcome message after sending history (fixes welcome message being created before history) ( #3623 )
2023-12-29 22:42:55 +04:00
spaced4ndy
12d1ada25e
core: support batch sending in groups, batch introductions; send recent message history to new members ( #3519 )
...
* core: batch send stubs, comments
* multiple events in ChatMessage and supporting types
* Revert "multiple events in ChatMessage and supporting types"
This reverts commit 9b239b26ba
.
* schema, refactor group processing for batched messages
* encoding, refactor processing
* refactor code to work with updated schema
* encoding, remove instances
* wip
* implement batching
* batch introductions
* wip
* collect and send message history
* missing new line
* rename
* test
* rework to build history via chat items
* refactor, tests
* correctly set member version range, dont include deleted items
* tests
* fix disappearing messages
* check number of errors
* comment
* check size in encodeChatMessage
* fix - don't check msg size for binary
* use builder
* rename
* rename
* rework batching
* lazy msg body
* use withStoreBatch
* refactor
* reverse batches
* comment
* possibly fix builder for single msg
* refactor batcher
* refactor
* dont repopulate msg_deliveries on down migration
* EncodedChatMessage type
* remove type
* batcher tests
* add tests
* group history preference
* test group link
* fix tests
* fix for random update
* add test testImageFitsSingleBatch
* refactor
* rename function
* refactor
* mconcat
* rename feature
* catch error on each batch
* refactor file inv retrieval
* refactor gathering item forward events
* refactor message batching
* unite migrations
* move files
* refactor
* Revert "unite migrations"
This reverts commit 0be7a3117a
.
* refactor splitFileDescr
* improve tests
* Revert "dont repopulate msg_deliveries on down migration"
This reverts commit 2944c1cc28
.
* fix down migration
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-12-23 13:07:23 +00:00
spaced4ndy
c0e8740f50
core: group message forwarding ( #3360 )
...
* core: group message forwarding types
* xgrpmemcon
* rework xgrpmemcon to use intros table
* only forward w/t error
* forward msg
* xGrpMsgForward, check integrity outside
* deduplicate group messages
* test
* change error
* item forwarded flag
* intro_chat_protocol_version, bump version
* comment
* highly available client option
* more comments
* notify xgrpmemcon on deduplication
* member vrange
* encoding
* remove MsgForward
* remove import
* exclude files from forwarding
* refactor
* rename to align with protocol
* forward more message types
* add events
* remove unused error, function
* add x.file.cancel, x.info and x.grp.mem.new to forwarded messages
* remove unused x.msg.file.cancel
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-11-18 17:52:01 +00:00
spaced4ndy
f34bbdbd9c
core: improve group link protocol (immediately establish group connection without first creating contact) ( #3288 )
2023-10-30 20:40:20 +04:00
spaced4ndy
e4c8386f3f
core: replace simplex:/ with simplex.chat links in view; remove trustedUri flag from simplex links markdown format ( #3235 )
2023-10-16 19:23:38 +04:00
spaced4ndy
0e5b16498a
core: api to create contacts with group members ( #3053 )
...
* core: api to create contacts with group members
* implementation
* fix contact replace, more tests
* comment
* rename fields
* fix
* fix
* test group is still incognito
* fix
* replace connection instead of contact
* fix
* check version
* style, names
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-09-16 17:55:48 +04:00
spaced4ndy
01f99baaac
Revert "core: direct messages in group ( #2994 )"
...
This reverts commit 5fddf64adb
.
2023-09-12 17:36:47 +04:00
spaced4ndy
5fddf64adb
core: direct messages in group ( #2994 )
2023-09-11 18:38:57 +04:00
spaced4ndy
43e233f0eb
core: don't create direct connections in group ( #2996 )
2023-09-05 20:15:50 +04:00
spaced4ndy
7a5d4a5a3d
core: communicate connection chat version range ( #2886 )
...
* core: communicate connection chat version range
* encoding
* type
* implementation wip
* contact requests
* tests
* more tests
* refactor
* remove comment
* change encoding
* remove Maybe
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-09-01 19:20:07 +04:00
Evgeny Poberezkin
a715e847ad
core: split preferences to separate file
2023-07-21 21:32:28 +01:00
Evgeny Poberezkin
6da18d9b2a
core: group permision to allow files and media ( #2610 )
...
* core: group permision to allow files and media
* test
2023-06-24 12:36:07 +01:00
Evgeny Poberezkin
c06a970987
core: message reactions ( #2429 )
...
* core: message reactions
* remove comments
* core: commands to set reactions
* fix tests
* process reaction messages
* store functions
* include reactions on item updates
* remove print
* view, tests
* load reactions for new items
* test removing reaction
* remove spaces
* limit the number of different reactions on one item
* remove unique constraints
* fix permissions
* indexes
* check chat item content before adding reaction
* fix group reactions
* simpler index
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2023-05-15 11:28:53 +01:00
spaced4ndy
0b57cc08a7
core, ios: include contact addresses in profiles ( #2328 )
...
* core: include contact links in profiles
* add connection request link to contact and group profiles
* set group link on update, view, api
* core: include contact addresses in profiles
* remove id from UserContactLink
* schema, fix test
* remove address from profile when deleting link, tests
* remove diff
* remove diff
* fix
* ios wip
* learn more, confirm save, reset on delete
* re-use in create link view
* remove obsolete files
* color
* revert scheme
* learn more with create
* layout
* layout
* progress indicator
* delete text
* save on change, layout
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-04-27 17:19:21 +04:00
Evgeny Poberezkin
b6876712f0
core: chat preference for audio/video calls ( #2188 )
...
* core: chat preference for audio/video calls
* correction
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
* clean up
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2023-04-17 10:18:04 +01:00
Evgeny Poberezkin
2817306659
core: types to support xftp ( #1971 )
...
* core: types to support xftp
* migration, amend types
* update protocol / types
* update protocol, types
* update schema, simplexmq
2023-03-09 11:01:22 +00:00
Evgeny Poberezkin
9e4499de6d
core: allow admins/owners delete member messages ( #1869 )
...
* core: allow admins/owners delete member messages
* allow message deletion to admins/owners
* deleted by types, schema
* check role
* fix test, view
* view, tests
* comment
* test timed deletion events
* refactor
* refactor
* refactor
---------
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com>
2023-02-08 11:08:53 +04:00
Evgeny Poberezkin
6b8705e9f4
core: support for live messages ( #1577 )
2022-12-16 11:51:04 +04:00
JRoberts
aa264690ab
core: add ttl to XMsgUpdate ( #1581 )
2022-12-15 17:29:46 +04:00
JRoberts
0e837ae392
core: timed messages ( #1561 )
...
* docs: disappearing messages rfc
* change schema
* word
* wip
* wip
* todos
* todos
* remove cancel, refactor
* revert prefs
* CITimed
* schema
* time on send direct
* time on send group
* add ttl to msg container, refactor
* timed on receive
* time on read
* getTimedItems, fix tests
* mark read in terminal - view, input, output, fix tests
* refactor
* comment
* util
* insert atomically
* refactor
* use guards
* refactor startTimedItemThread
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2022-12-15 15:17:29 +04:00
Evgeny Poberezkin
677c6aeb2e
core: types for timed and live messages ( #1572 )
...
* core: types for timed and live messages
* add protocol tests
2022-12-14 16:16:11 +04:00
Evgeny Poberezkin
7b8f5be821
core: type for group preference for timed messages ( #1568 )
...
* core: type for group preference for timed messages
* remove unused func
2022-12-14 12:30:24 +04:00
Evgeny Poberezkin
678dbec3e2
core: different types for chat preferences, to allow parameters ( #1565 )
2022-12-13 14:52:34 +00:00
Evgeny Poberezkin
33e7538172
core: group description ( #1538 )
...
* core: group description
* support multi-line welcome message
* fix
2022-12-10 08:27:32 +00:00
Evgeny Poberezkin
1872744543
core, mobile: add group feature to allow direct messages ( #1465 )
...
* core, mobile: split group features to a separate type (to add directAllowed later)
* add directMessages group feature, update tests
2022-11-29 15:19:20 +00:00
Evgeny Poberezkin
89de5497ef
core: update chat preferences ( #1292 )
...
* core: update chat preferences
* refactor, types
* rename types
* rename types
* make voice on by default
* create new user with empty preferences
* fix test
2022-11-04 21:05:21 +04:00
JRoberts
5243613045
core: group link connection request uri data; automatically join groups over group links ( #1275 )
2022-11-03 14:46:36 +04:00
Stanislav Dmitrenko
4e5a5c11dc
core: Chat preferences ( #1261 )
...
* core: Preferences
* Changes
* fix types
* Follow up
* Review
* Review
* update logic
* update
* update 2
* Tests
* Fixed a bug and tests
* Voice -> voice messages
* refactor
* fix
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2022-11-01 14:32:49 +00:00
Evgeny Poberezkin
a72f603e13
core: switch connection ( #1277 )
...
* core: switch connection
* chat items for SWITCH
* additional events for connection switch
* update simplexmq
* test
* comment test output
* update messages for connection switch
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com>
2022-11-01 13:26:08 +00:00
Evgeny Poberezkin
7f544da6cf
core: debug chat and agent locks, update simplexmq ( #1243 )
...
* core: debug chat and agent locks, update simplexmq
* add connId
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com>
* update lock strings
* fix encoding test
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com>
2022-10-22 21:22:44 +01:00
Evgeny Poberezkin
fb03a119ea
core: support inline file transfers ( #1187 )
...
* core: support inline file transfers
* parameterize ChatMessage
* send files inline when accepted
* accept inline file transfers (almost works)
* db error SERcvFileInvalid
* inline file transfer works (TODO fix test)
* inline file transfer tests, change encodings
* fixture
* combine messages into x.file.acpt.inv, refactor
* inline file mode
* decide whether to receive file inline on the recipient side, not only via file invitation
* test inline files "sent" mode
* check that file was offered inline
* update schema
* enable encryption tests
* test name
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com>
* fix the list of rcv files to subscribe too
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com>
2022-10-14 13:06:33 +01:00
JRoberts
2fc6873c42
core: simplify incognito feature - remove host/invitee incognito profiles communication; remove incognito mode group creation and join; use same incognito profile known to host when joining ( #978 )
2022-08-27 19:56:03 +04:00
JRoberts
5e67654249
core: incognito connections ( #926 )
2022-08-18 11:35:31 +04:00
Evgeny Poberezkin
e43be1ad8b
core: support multiple hostnames in server addresses ( #930 )
...
* core: support multiple hostnames in server addresses
* add onion hosts
* update simplexmq, fix test
* fix parsing servers with multiple hostnames
2022-08-13 11:53:53 +01:00
Evgeny Poberezkin
111acb0813
core: use NTF scheme for notification server address ( #774 )
...
* core: use NTF scheme for notification server address
* simplexmq
2022-07-06 08:46:04 +01:00
Evgeny Poberezkin
716a941dc6
core: use duplex handshake (agent v2) ( #735 )
...
* core: use duplex handshake (agent v2)
* version test matrix
* update simplexmq
2022-06-09 14:52:12 +01:00
JRoberts
0262ab53bf
core: improve file cancel ( #627 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2022-05-11 16:18:28 +04:00
JRoberts
c48a516586
core: MCFile ( #580 )
2022-04-28 09:40:51 +04:00
Evgeny Poberezkin
f594774579
ios: push notifications ( #482 )
...
* ios: get device token for push notifications
* ios: receive messages when background notification is received
* add notifications API, update simplexmq
* chat API to register and verify notification token
* update AppDelegate to recognize different notification types, update simplexmq
* core: api to enable periodic background notifications
* update simplexmq
* chat API to delete device notification token
* use base64url encoding in verification code
* update simplexmq for notifications
2022-04-21 20:04:22 +01:00
JRoberts
13f84f2a96
core: sending messages with files ( #507 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2022-04-10 13:30:58 +04:00
JRoberts
8dd324b9b3
core: images api ( #506 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2022-04-06 13:21:06 +04:00
JRoberts
a5ca2c2163
core: new files protocol ( #492 )
2022-04-05 10:01:08 +04:00
Evgeny Poberezkin
7012005feb
core: MsgContent for link previews, API to parse markdown ( #504 )
2022-04-04 19:51:49 +01:00
JRoberts
897c64e0ba
core: use existential connection request type in file invitations to allow switching groups to "contact" requests (restore #464 ) ( #468 )
2022-03-25 22:23:51 +04:00
Evgeny Poberezkin
148474e1ba
core: change quoted messages types/protocol ( #443 )
...
* core: change quoted messages types/protocol
* remove comments and unused field
* rename CIQuote type
* change type for quote direction to allow unknown group member, use QuotedMsg to save received chat item
* change queries of quoted items when the sending group member is known
* refactor
* fix: make ciQuote polymorphic
2022-03-16 13:20:47 +00:00
Evgeny Poberezkin
806f417e99
message replies and chat item references ( #394 )
...
* rfc for message replies and chat item references
* update replies rfc
* save received/sent shared message ids, migration and types for replies
* include reply/forward into MsgContent type
* add sharedMsgId to CIMeta
* save/get shared_msg_id to/from chat items table
* parameterize CIRef by chat type
* add CIRef to ChatItem when it is read from the db
* terminal command to send message replies
* include quoted content into chat items
* quoted message direction in direct chats (TODO test)
* test for replies with quotes to group messages - own and others
* split MsgContainer from MsgContent
* make quoting usable in the terminal
* add formattedText to quotes
* rename migration
* update JSON encoding for MsgContainer
* allow quoted replies to messages from clients not supporting it/not sending msg IDs
* update rfc
* fix group replies
* add APISendMessageQuote and use it for terminal commands
* change how quoted messages are shown in groups
2022-03-13 19:34:03 +00:00
John Roberts
90a18186d9
configurable smp servers ( #366 , #411 ); core: profile images ( #384 )
...
* core: configurable smp servers (#366 )
* core: update simplexmq hash
* core: update simplexmq hash (fix SMPServer json encoding)
* core: fix crashing on supplying duplicate SMP servers
* core: update simplexmq hash (remove SMPServer FromJSON)
* core: update simplexmq hash (merged master)
* core: profile images (#384 )
* adding initial RFC
* adding migration SQL
* update RFC
* linting
* Apply suggestions from code review
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
* refine RFC
* add avatars db migration to Store.hs
* initial chages to have images in users/groups
* fix protocol tests
* update SQL & MobileTests
* minor bug fixes
* add missing comma
* fix query error
* refactor and update functions
* bug fixes + testing
* update to parse base64 web format images
* fix parsing and use valid padded base64 encoded image
* fix typos
* respose to and suggestions from review
* fix: typo
* refactor: avatars -> profile_images
* fix: typo
* swap updateProfile parameters
* remove TODO
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
* ios, android: configurable smp servers (only model and api for android) (#392 )
* android: configurable smp servers (ui)
* fix thumb color, fix text field color in dark mode
* update simplexmq hash (configurable servers in master)
Co-authored-by: IanRDavies <ian_davies_@hotmail.co.uk>
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2022-03-10 15:45:40 +04:00
Efim Poberezkin
c1c55ca700
deduplicate contact requests ( #287 )
...
* deprecate XContact
* XInfoId
* xInfoId tests
* merging
* saving on connection
* connectByAddress
* remove old connect
* deduplicate contact requests
* check on contact acceptance
* test
* rename response
* reuse CRContactRequestAlreadyAccepted
* Update src/Simplex/Chat.hs
* createConnReqConnection
* simplify controller logic
* store methods + profile change
* index
* more indices
* unXInfoId
* simplify
* XInfo with ID -> XContact
* sync reply to Connect when contact already exists
* update view for sync CRContactAlreadyExists command response
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2022-02-13 09:19:24 +00:00