Evgeny Poberezkin
a5db36469d
core: api to forward messages ( #3968 )
...
* wip
* wip
* test
* mute
* tests
* simplify (only bool flag)
* re-encrypt file
* tests
* more tests (wip)
* fix relative paths, refactor
* more tests
* more locks
* fix, tests
* more tests
* rework (revert from bool to ids)
* update schema
* more tests
* add to info
* ForwardedMsg container
* Revert "ForwardedMsg container"
This reverts commit bb57f12151 .
* parser
* more tests
* rework api
* more locks
* test
* move
* remove from
* view
* prohibit editing
* item info view
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-04-09 16:02:59 +04:00
Evgeny Poberezkin
86fe28f1ed
core: chat hooks allowing to extend or customize chat core ( #3953 )
...
* core: chat hooks allowing to extend or customize chat core
* update
* json
* custom response
* user in db queries
2024-03-29 18:30:17 +00:00
spaced4ndy
366b58ead5
core: don't save async commands records for ack ( #3904 )
2024-03-28 19:52:06 +04:00
Evgeny Poberezkin
60a73a539e
core: add agreed connection version field ( #3881 )
...
* core: add agreed connection version field
* fix
* progress
* use pqSupport and version to decide compression in messages
* pass version to encodeConnInfoPQ
* update pq enable/disable api
* remove TestConfig
* update nix dependencies
* update texts
* corrections
* create e2ee info items when connection switches from off to on first time
* corrections
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* comment
* increase test timeout
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-03-10 11:31:14 +00:00
spaced4ndy
109b6e0cff
core (pq): add pq_support field ( #3877 )
2024-03-08 12:24:27 +04:00
spaced4ndy
b403201310
core (pq): further integrate agent api ( #3874 )
...
* core (pq): further integrate agent api
* update both pq support and ecnryption
* update
* fix
* corrections
* corrections 2
* corrections 3
2024-03-08 11:40:55 +04:00
spaced4ndy
eebf014ff7
core (pq): integrate agent api, create e2ee info items ( #3859 )
2024-03-05 20:27:00 +04:00
spaced4ndy
2155060ad0
core: groundwork for post-quantum encryption support ( #3845 )
2024-03-03 17:51:42 +04:00
spaced4ndy
c27973d202
core: restrict to delete user contact and display name ( #3822 )
2024-02-26 17:10:21 +04:00
Evgeny Poberezkin
e37654772f
core: api to save/get app settings to migrate them as part of the database ( #3824 )
...
* rfc: migrate app settings as part of export/import/migration
* export/import app settings
* test, fix
* chat: store app settings in db (#3834 )
* chat: store app settings in db
* add combining with app-defaults
* commit schema
* test with tweaked settings
* remove unused error
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
* remove app settings from export/import
* test, more settings
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-02-24 15:00:16 +00:00
Alexander Bondarenko
daf67c0456
core: add direct xftp upload/download commands ( #3781 )
...
* chat: add direct xftp upload/download commands
* adapt to FileDescriptionURI record
* bump simplexmq
* add description uploading
* filter URIs by size
* cleanup
* add file meta to events
* remove focus
* auto-redirect when no URI fits
* send "upload complete" event with the original file id
* remove description upload command
* add index
* refactor
* update simplexmq
* Apply suggestions from code review
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* fix /fc command for non-chat uploads
* fix
* rename (tests fail)
* num recipients
* update messages
* split "file complete" events for chats and standalone
* restore xftpSndFileRedirect
* remove unused store error
* add send/cancel test
* untangle standalone views
* fix confused id
* fix /fc and /fs
* resolve comments
* misc fixes
* bump simplexmq
* fix build
* handle redirect errors independently
* fix missing file status in tests
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-02-19 10:21:32 +00:00
spaced4ndy
afd145c979
core: improve chat list performance (indexes) ( #3728 )
2024-01-22 18:03:40 +04:00
spaced4ndy
16f53490c5
core: block member for all ( #3689 )
...
* core: silence member wip
* change approach
* more types
* remove comment
* bool in protocol msg
* flag in items, event
* send event, process
* apply moderation
* remove comment
* filter for forward, view
* tests
* rename
* separate response, check already blocked
* add test
* fix terminal api
* add comment
* don't send profile update
* corrections
* refactor
* rework - flag blocked by admin
* blocked in intro
* fix test
* cant block unblock self
* muted view, create unknown member
* blocked by admin in members list
* create with maybe null
* protocol changes
* align code with protocol
* revert terminal api
* restrict block api for admins
* stabilize test
* rename
* update protocol/types
* refactor
* refactor2
* stabilize test
* member field
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-01-19 17:57:04 +04:00
spaced4ndy
f4f8501eb8
core: members profile update, create profile update chat items ( #3644 )
2024-01-15 19:56:11 +04:00
Alexander Bondarenko
bc8a6f4833
core: add notes chat type ( #3568 )
...
* Add chat type "self"
* rename to Notes
* cover more things
* remove quote, tweak sql
* resolve comments
* constrain ACIQDirection to exclude CTLocal
* add CILocalRcv handling
* plug in migrations and tests
* cover more API, implement new folders
* working create/send/tail
* remove interaction with messages
* add note deletion (api-only)
* add folder deletion
* add getLocalChatItemIdByText
* add APICreateChatItem and files
* add protocol check for getFileTransfer protocol
* replace FTLocal with createLocalFile
* add chat previews
* add folder clear
* add reactions
* add read/unread
* add note updates
* resolve some comments
* remove local reactions
* remove folder names, deletion, add autocreate
* add file deletion check
* add preview pagination test
* add per-item file deletion check
* pull mkChatItem out of createLocal to prevent ci record updates
* use - as notes name
* bump migration ts
* update schema
* resolve comments
* add chat pagination test
* use chat queries from Direct instead
* evict note folders from createUserRecord
* switch to - for note folder chat type prefix and use empty name
* fix getLocalChatXxx
* add explicit createCCNoteFolder for tests
* use overloadedstrings for single-line queries
* add suggested chat list tests
* add notes chat to a user-creating test
* throw correct error for missing file
* remove unique check from schema
* add UndecidableInstances for ghc8.10
* switch to * for chat type sigil
* add file safety test
* add drop index
* remove indentation
* remove repeated folder
* remove redundant filter query, NoteFolderName
* don't attempt to cancel local files when deleting chat item
* rename function
* fix comment
* rename
* fix merge
* fix typo
* remove editable limit
* restore comment
* remove local file cancel
* Revert "remove editable limit"
This reverts commit 65df55caf8 .
* refactor
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-01-11 17:01:44 +00: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
8cec5428ee
core: save CIContent tag in chat_items table ( #3555 )
2023-12-14 17:08:40 +04:00
spaced4ndy
b6b041490f
core: improve chat list pagination performance, simplify logic by always reading chat stats and last item id for previews ( #3541 )
...
* core: improve chat list pagination performance
* fix query
* core: improve chat list pagination performance, simplify logic by always reading chat stats (#3543 )
* microseconds
* fix
* update simplexmq
* simplify queries
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-12-13 15:32:23 +04:00
Alexander Bondarenko
35c1975d66
core: chat list pagination ( #3505 )
...
* add pagination args to APIGetChats
* add search to chat list API
* rename arg to paginationTs_ to match type
* lift another condition to ids query
* collect all chat refs before sorting, then get details
* split remaining preview functions
* roll back to collecting ids first with query cleanup
* add connection join back to filter out groups
* extract and expand tests
* add fav/unread args
* WIP
* lay out the queries with favs
* tweak tests
* add fav tests
* fix order by in the before case
* build query footer wholly from pagination
* add migration for direct contacts
* fix setting contact_used
* fix setting contact_used for group link contacts
* align search x filters space with UI, support filter by either favorite or unread, optimize queries, indexes
* always set chat_ts, fix tests
* refactor tests
* fix pagination logic, more tests
* refactor, rename
* increase default pagination count
* comments
* refactor
* comment
* report errors
* refactor
* remove unused type
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2023-12-11 17:50:32 +04:00
Alexander Bondarenko
6a21d5c7f1
add remote host bindings ( #3471 )
...
* add remote host bindings
* group iface/address together
* rename migration
* add implementation
* update view and api
* bump upstream
* add schema
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-28 16:32:33 +00:00
Evgeny Poberezkin
e95d9d0b49
core: rename migration to remote-control, comments ( #3393 )
2023-11-18 19:18:02 +00:00
Evgeny Poberezkin
cc434cda55
Merge branch 'master' into remote-desktop
2023-11-18 18:03:13 +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
Alexander Bondarenko
b729144773
core: use xrcp protocol for desktop/mobile connection ( #3305 )
...
* WIP: start working on /connect remote ctrl
OOB is broken, requires fixing simplexmq bits.
* WIP: pull CtrlCryptoHandle from xrcp
* place xrcp stubs
* WIP: start switching to RemoteControl.Client types
* fix http2 sha
* fix sha256map.nix
* fix cabal.project
* update RC test
* WIP: add new remote session
* fix compilation
* simplify
* attach HTTP2 server to TLS
* starting host session in controller (WIP)
* more WIP
* compiles
* compiles2
* wip
* pass startRemote' test
* async to poll for events from host, test to send messages fails
* move xrcp handshake test to simplexmq
* detect session stops
* fix connectRemoteCtrl
* use step type
* app info
* WIP: pairing stores
* plug in hello/appInfo/pairings
* negotiate app version
* update simplexmw, remove KEM secrets from DB
* fix file tests
* tone down http2 shutdown errors
* Add stored session test
* bump simplexmq tag
* update simplexmq
* refactor, fix
* removed unused errors
* rename fields, remove unused file
* rename errors
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-08 20:13:52 +00:00
Evgeny Poberezkin
3839267f88
Merge branch 'master' into remote-desktop
2023-11-08 13:10:42 +00:00
spaced4ndy
a04dc5d05b
core: preset simplex contact ( #3321 )
2023-11-07 17:45:59 +04:00
spaced4ndy
b1fdc936a6
Merge branch 'master' into remote-desktop
2023-10-30 20:58:39 +04: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
Evgeny Poberezkin
b5e114d834
Merge branch 'master' into remote-desktop
2023-10-22 13:04:15 +01:00
spaced4ndy
87d84cfccc
core: filter connection plan query results by user_id ( #3251 )
2023-10-21 19:13:32 +04:00
Evgeny Poberezkin
73652e4bba
Merge branch 'master' into remote-desktop
2023-10-12 10:43:59 +01:00
Evgeny Poberezkin
bca9473d77
core: settings to hide member messages, to show only reply (and mention) notifications ( #3190 )
...
* core: settings to hide member messages, to show only reply (and mention) notifications
* change type for showMessages
* commands for member settings
* member and notification settings
* test
* take member settings into account when showing messages and notifications
* fix to show sent messages
* store blocked items
* types
* rename to MFMentions
2023-10-11 19:10:38 +01:00
spaced4ndy
a67b79952b
core: connection plan api; check connection plan before connecting in terminal api ( #3176 )
2023-10-10 21:19:04 +04:00
Evgeny Poberezkin
2b228a893a
Merge branch 'master' into remote-desktop
2023-10-09 17:21:47 +01:00
spaced4ndy
303d0eedf5
core: merge new contacts with existing contacts and group members ( #3173 )
2023-10-04 20:58:22 +04:00
Alexander Bondarenko
0bcf5c9c66
Add commands for remote session credentials ( #3161 )
...
* Add remote host commands
* Make startRemoteHost async
* Add tests
* Trim randomStorePath to 16 chars
* Add chat command tests
* add view, use view output in test
* enable all tests
* Fix discovery listener host
Must use any, not broadcast on macos.
* Fix missing do
* address, names
* Fix session host flow
* fix test
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-10-04 16:36:10 +01:00
IC Rainbow
bf7917bd67
Merge remote-tracking branch 'origin/master' into ab/remote-discover-upd
2023-09-29 18:42:59 +03:00
spaced4ndy
c64d1e8361
core: notify contact about contact deletion ( #3131 )
2023-09-27 19:36:13 +04:00
Alexander Bondarenko
3e29c664ac
core: remote host/controller types ( #3104 )
...
* Start sprinkling ZoneId everywhere
* Draft zone/satellite/host api
* Add zone dispatching
* Add command relaying handler
* Parse commands and begin DB
* Implement discussed things
* Resolve some comments
* Resolve more stuff
* Make bots ignore remoteHostId from queues
* Fix tests and stub more
* Untangle cmd relaying
* Resolve comments
* Add more http2 client funs
* refactor, rename
* rename
* remove empty tests
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-09-27 09:41:02 +01:00
spaced4ndy
1928256b09
core: connect existing contacts to new members when profile matches, enable skipping direct connections in groups ( #3056 )
...
* core: test group members are assigned different LDNs in group when direct connections aren't created
* disable test output
* core: connect existing contacts to new members when profile matches (#3059 )
* core: connect existing contacts to new members when profile matches
* fix migration
* progress
* xInfoProbeOk for member
* fix tests
* add test
* fix tests
* tests
* remove deleteSentProbe
* remove deleteContactProfile_
* views
* don't check connections in deleteUnusedProfile_
* Revert "don't check connections in deleteUnusedProfile_"
This reverts commit 2016a0efde .
* fix test
* core: update member merge
* update saved schema
* fix queries and tests
* rename tables to original names
* remove index, corrections
* update schema dump
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-09-19 21:26:03 +01: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
Alexander Bondarenko
2dff6c8859
core: do not subscribe to new connections from iOS NSE (subscribe=off flag), subscribe in app when it activates ( #3016 )
...
* Trace auto-subs flag
* Replace Bool with SubscriptionMode
* Add subscriptionMode to chat controller
* Start using subscriptionMode in event handlers
* Add need_subs to chat connections
* Add onlyNeeded to subscribeUserConnections
* Post-rebase fixes
* Pass onlyNeeded to Store functions
* Drop needs_sub for connections registered with agent
* update simplexmq, fix activate
* fix rebase, reduce diff
* fix rebase, tests
* fix rebase, executeMany, always subscribe on activate
* test
* update queries
* Update src/Simplex/Chat.hs
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* unset connections to subscribe on start
* update simplexmq
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2023-09-10 20:40:15 +01:00
spaced4ndy
e6baca5610
core: rename conn vrange into peer vrange ( #3023 )
2023-09-06 11:41:23 +04:00
spaced4ndy
0c4b843a3f
Merge branch 'master' into chat-version-negotiation
2023-09-06 10:41:06 +04:00
Evgeny Poberezkin
0b214acf97
core: support encrypted local files ( #2989 )
...
* core: support encrypted local files
* add migration
* update agent api, chat api
* fix query, exported functions to read/write files
* update simplexmq
* remove formatting changes
* test, fix file size
* reduce diff
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* fail when receiving SMP files with local encryption
* update simplexmq
* remove style changes
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2023-09-01 19:43:27 +01: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
spaced4ndy
4a5dd0a3a4
core: add indexes to improve slow queries performance ( #2931 )
...
* core: add indexes to improve slow queries performance
* idx_chat_items_group_id
* update simplexmq, schema
* update simplexmq
* remove index
* update simplexmq
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-08-16 10:41:52 +04:00
spaced4ndy
ae9b83515c
core: group snd status ( #2763 )
...
* core: group snd status
* schema, implementation
* refactor direct, tests
* configure, tests
* item info
* refactor
* refactor
* remove do
* rename
* remove receipts on events
* refactor
* refactor
* refactor
* refactor
* tests
* rename tests
* aggregates
* fix name
* refactor
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-07-26 14:49:35 +04:00