spaced4ndy
bfab76ed90
core: allow sending messages immediately on joinConnection, acceptContact ( #4465 )
2024-07-18 20:33:51 +04:00
spaced4ndy
3d395b0e45
core: inactive connections/members ( #4009 )
2024-05-28 16:42:07 +04:00
spaced4ndy
f40ba6f04d
core: api to differentiate contacts and conversations ( #4111 )
2024-05-13 16:51:54 +04:00
Evgeny Poberezkin
bc5af35a3e
core: wallpapers api ( #4110 )
...
* core: wallpapers api
* optional colors
* update
* api
* update
* whitespace
* typo
* test, fix
* fix color parsing
* separate UI and Theme color schemes
* update
* enable test
* multiple themes, one per color scheme
* theme overrides as a separate type
* rename
---------
Co-authored-by: Avently <7953703+avently@users.noreply.github.com >
2024-05-08 15:36:20 +01:00
spaced4ndy
7567791866
core: enable PQ encryption for contacts ( #4049 )
...
* wip
* migration
* remove migration
* remove flag wip
* Revert "remove migration"
This reverts commit 9e64663f9d .
* wip
* remove vrange parameterization
* tests mostly pass
* more tests pass
* enable for upgraded contacts
* remove migration
* core: test large messages (#4061 )
* update simplexmq, fix tests
* test test
* another test
* enable tests
* empty
* empty
2024-04-22 17:46:48 +01:00
spaced4ndy
069395c2a0
core: entity locks ( #3962 )
...
* core: entity locks
* more locks
* update sha256map
* add delay
* clean up
* empty
* fix tests
* empty
* empty
* more delays
* empty
* comment delays
* Revert "comment delays"
This reverts commit 4245b545fb .
* Revert "Revert "comment delays""
This reverts commit f803386945 .
* take lock in the beginning of processing loop
* empty
* empty
* remove lock
* rework file locks
* empty
* fix
* empty
* add connection locks
* empty
* fix test
* empty
* remove commented delays
* add to debug locks
* update
* refactor
* refactor
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-04-04 19:24:42 +01:00
Evgeny Poberezkin
2bd1a82b7d
core: revert "deps: switch to base64 via simplexmq ( #3957 )" ( #3985 )
...
* Revert "deps: switch to base64 via simplexmq (#3957 )"
This reverts commit d65137882b .
* update simplexmq
2024-04-03 10:47:38 +01: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
Alexander Bondarenko
d65137882b
deps: switch to base64 via simplexmq ( #3957 )
...
* deps: switch to base64 via simplexmq
* update error text
* update nix
* set simplexmq to master
* update paths
2024-03-28 13:09:04 +00:00
Alexander Bondarenko
7fa2f2f72e
core: organize withAckMessage ( #3889 )
...
* core: organize withAckMessage
* mark critical sections
* differentiate DB internal error from chat
* throw CRITICALs
* only CRIT on SEDatabaseError
* normalize errors
* shift MonadError into ExceptT
* simplify
* split critical handlers
* names, CRITICAL error in withAckMessage, comments
* only show critical alerts when database was locked or busy and message failed to process
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-03-12 17:47:38 +00:00
Evgeny Poberezkin
49bd866c4b
core: pass version range to determine missing connection version ( #3887 )
...
* core: pass version range function to store methods
* pass current version to Connection to determine agreed version with peer
* simplify
2024-03-10 20:52:29 +00: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
Evgeny Poberezkin
1f93d91af5
core: simplify feature versions ( #3879 )
...
* core: simplify feature versions
* update version agreement
* fix
* remove EmptyCase
2024-03-08 13:36:09 +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
bc2b135880
core (pq): update types ( #3872 )
...
* core (pq): update types
* imports
* encode / max msg size types
* integrate new types
* update types/pq support
* tests compile
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-03-07 17:39:09 +04:00
spaced4ndy
61a3eb32ee
core (pq): global flag only affects new connections; api to allow PQ in old contacts ( #3869 )
2024-03-06 19:06:01 +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
b0b249a56a
Merge branch 'stable'
2024-02-22 12:11:23 +04:00
spaced4ndy
f7d7f5461f
core: check user record when deleting contact and display name ( #3826 )
...
* filter out on merge
* checl contact, ldn
* fix
* corrections
* fix
* refactor
* diff
* refactor2
* remove contact id from error
* Revert "remove contact id from error"
This reverts commit f58af3dcac .
* remove Maybe from error
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-02-21 14:24:24 +00:00
spaced4ndy
654a7885c3
core: read chat items with logical database errors as invalid (don't fail) ( #3736 )
2024-02-19 15:17:14 +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
Evgeny Poberezkin
7bcda7e54b
core: use ChaChaDRG as the source of randomness ( #3551 )
...
* core: use ChaChaDRG as the source of randomness
* do not use entropy directly
* dont use RNG from agent
* simplexmq
* update iOS
2023-12-21 00:42:40 +00: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
Evgeny Poberezkin
d29f1bb0cf
core: use fourmolu styles ( #3470 )
2023-11-26 18:16:37 +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
Evgeny Poberezkin
c2a99987f3
Merge branch 'master' into remote-desktop
2023-11-04 18:54:12 +00:00
Evgeny Poberezkin
4816150b99
core: contacts without connections ( #3313 )
...
* core: contacts without connections
* compiles (some tests don't pass)
* remove commented code
* filter out user contact (fixes tests)
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2023-11-03 18:15:07 +00:00
Evgeny Poberezkin
16bda26022
core: derive JSON with TH ( #3275 )
...
* core: derive JSON with TH
* fix tests
* simplify events
* reduce diff
* fix
* update simplexmq
* update simplexmq
2023-10-26 15:44:50 +01:00
Evgeny Poberezkin
6185971827
Merge branch 'master' into remote-desktop
2023-10-24 23:19:49 +01:00
spaced4ndy
239765e482
core: create new group with incognito membership ( #3277 )
2023-10-24 20:59:06 +04:00
Evgeny Poberezkin
fc1bba8817
remote: refactor (WIP) ( #3222 )
...
* remote: refactor (WIP)
* refactor discoverRemoteCtrls
* refactor processRemoteCommand, storeRemoteFile
* refactor fetchRemoteFile
* refactor startRemoteHost, receiving files
* refactor relayCommand
2023-10-15 14:17:36 +01: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
Evgeny Poberezkin
2b228a893a
Merge branch 'master' into remote-desktop
2023-10-09 17:21:47 +01:00
Alexander Bondarenko
fc9db9c381
core: add FromJSON instance to ChatResponse ( #3129 )
...
* Start adding FromJSON instances to ChatResponse
* progress
* FromJSON instance for ChatResponse compiles
* restore removed encodings
* remove comment
* diff
* update simplexmq, use TH for JSON
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-10-05 19:49:20 +01:00
spaced4ndy
303d0eedf5
core: merge new contacts with existing contacts and group members ( #3173 )
2023-10-04 20:58:22 +04:00
spaced4ndy
c64d1e8361
core: notify contact about contact deletion ( #3131 )
2023-09-27 19:36:13 +04:00
Evgeny Poberezkin
904b758e79
Merge branch 'master' into master-ghc9
2023-09-18 21:46:27 +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
a1790d6ac0
core: use JVersionRange in UI facing types ( #3048 )
2023-09-12 17:59:09 +04:00
Evgeny Poberezkin
fedc31c72c
Merge branch 'master' into master-ghc9
2023-09-10 21:11:35 +01: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