spaced4ndy
b0b249a56a
Merge branch 'stable'
2024-02-22 12:11:23 +04:00
spaced4ndy
c544a636f6
core, ui: remove usage of inline files (send only xftp files) ( #3823 )
2024-02-20 13:56:31 +04: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
Alexander Bondarenko
364b62320b
controller: add db passphrase test command ( #3788 )
...
* controller: add passphrase test
* refactor
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-02-18 13:28:24 +00:00
spaced4ndy
e39544dd24
core: return ntf server in APIGetNtfToken ( #3797 )
2024-02-12 21:21:20 +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
Alexander Bondarenko
236daf4391
controller: add GetAgentWorkers/GetAgentWorkerDetails debug commands ( #3681 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2024-01-17 17:37:29 +00: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
bfe5d51df7
core, ui: create dummy member record when admin forwards a message from an unknown member ( #3651 )
...
* core: create dummy member record when admin forwards a message from an unknown member
* comments
* update unknown member if announced
* change removed
* change unknown name, revert diff
* revert diff
* ios
* update ios library
* android
* remove changes in iOS project file
* rename event
* remove unknown category
* android
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2024-01-11 17:55:13 +04:00
Evgeny Poberezkin
4508e0dfc1
Merge branch 'stable'
2024-01-09 11:07:04 +00:00
spaced4ndy
58ad97fe6d
core: pause cleanup when chat is suspended ( #3658 )
2024-01-08 17:28:01 +04:00
Evgeny Poberezkin
3ccd9903a7
core: do not start clean up manager in background NSE ( #3657 )
...
* core: do not start clean up manager in background NSE
* update UIs
* fix test
2024-01-08 12:53:16 +00:00
spaced4ndy
9e87fe73a5
core: batch send profile update ( #3618 )
...
* core: batch send profile update
* redundant
* reorder
* remove type
* createSndMessages
* refactor
* batched create internal item
* create feature items for multiple contacts
* comments
* refactor call site
* synonim
* refactor createSndMessages
* more batching
* remove partitionWith
* unite filter and fold
* refactor
* refactor
* refactor
* fix merge
* add test
* rename
* refactor
* refactor
* withExceptT
* refactor
* refactor2
* remove notChanged
* deliver with sendMessagesB (#3646 )
* deliver with sendMessagesB
* refactor
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-01-05 11:35:48 +04: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
Evgeny Poberezkin
6ba3100d34
core: batch sending messages ( #3566 )
...
* core: batch sending messages
* batch without iorefs (#3573 )
* one-pass
* simplexmq
* simplexmq
* simplexmq
* simplexmq
* revert change to ios project file
* refactor
* simplify
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2023-12-20 10:38:39 +04:00
Evgeny Poberezkin
f9a125bc32
Merge branch 'master' into ios-notifications
2023-12-11 14:11:00 +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
666903ae76
Merge branch 'master' into ios-notifications
2023-12-11 13:06:32 +00:00
Evgeny Poberezkin
f65b8a9e78
core: mark all user messages read ( #3530 )
2023-12-11 12:26:45 +00:00
Evgeny Poberezkin
d3059afc99
ios, core: better notifications processing to avoid contention for database ( #3485 )
...
* core: forward notifications about message processing (for iOS notifications)
* simplexmq
* the option to keep database key, to allow re-opening the database
* export new init with keepKey and reopen DB api
* stop remote ctrl when suspending chat
* ios: close/re-open db on suspend/activate
* allow activating chat without restoring (for NSE)
* update NSE to suspend/activate (does not work)
* simplexmq
* suspend chat and close database when last notification in the process is processed
* stop reading notifications on message markers
* replace async stream with cancellable concurrent queue
* better synchronization of app and NSE
* remove outside of task
* remove unused var
* whitespace
* more debug logging, handle cancelled read after dequeue
* comments
* more comments
2023-12-09 21:59:40 +00:00
spaced4ndy
5819e42305
core: remove CRNewContactConnection response; mobile, desktop: create pending connections based on api responses (CRNewContactConnection was being used as "event" in UI) ( #3489 )
2023-11-30 20:31: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
d4ac1c0cf2
core, ui: add remote host/controller stop reasons to events ( #3472 )
2023-11-26 23:23:37 +00:00
Evgeny Poberezkin
d29f1bb0cf
core: use fourmolu styles ( #3470 )
2023-11-26 18:16:37 +00:00
Evgeny Poberezkin
b1cf1656a0
core: cli remote control help section ( #3445 )
2023-11-24 10:48:14 +00:00
Alexander Bondarenko
74e80eb348
core: add remote stop reason and state ( #3444 )
...
* add remote stop reason and state
* rename
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-23 22:00:20 +00:00
Evgeny Poberezkin
d3f9616f9b
core: report controller info when found via multicast ( #3437 )
...
* core: report controller info when found via multicast
* handle parse error
2023-11-23 10:07:26 +00:00
Evgeny Poberezkin
2d4e99d610
cli: set device name for remote control via CLI option ( #3427 )
...
* cli: set device name for remote control via CLI option
* fix
* add property in tests
2023-11-22 22:11:32 +00:00
Evgeny Poberezkin
324f614e00
core: return remote controller port to UI ( #3430 )
2023-11-22 17:40:10 +00:00
Evgeny Poberezkin
c536ca7f0f
core: add events not sent to connected remote desktop ( #3402 )
2023-11-20 10:34:24 +00:00
Alexander Bondarenko
68cbc605be
add remote session sequence to prevent stale state updates ( #3390 )
...
* add remote session sequence to prevent stale state updates
* remote RHStateKey
* add StateSeq check to controller
* clean up
* simplify
* undo withRemoteXSession API change
* simplify
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-20 10:19:00 +00:00
Evgeny Poberezkin
2a8d7b8926
core: add commands that will not be forwarded to connected mobile ( #3398 )
...
* core: add commands that will not be forwarded to connected mobile
* fail if command that must be executed locally sent to remote host
2023-11-19 20:48:25 +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
42e0400014
core: add remote controller discovery with multicast ( #3369 )
...
* draft multicast chat api
* prepare tests
* Plug discovery into chat api
* Add discovery timeout
* post-merge fixes
* rename discovery state to match others
* update for unified invitation
* fix review notices
* rename, remove stack, update simplexmq
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-17 18:50:38 +00:00
Alexander Bondarenko
339c3d2be1
Send CRRemote*Stopped on all errors ( #3376 )
...
* Send CRRemote*Stopped on all errors
Commands use the same action, made idempotent and don't send events.
* fix tests
* get http2 cancelling back
2023-11-15 17:31:36 +00:00
Evgeny Poberezkin
b71daed3ec
core: include session code in all session states ( #3374 )
2023-11-15 13:17:31 +00:00
Evgeny Poberezkin
3d617bce25
core: test JSON conversion ( #3370 )
2023-11-14 22:40:15 +00:00
Alexander Bondarenko
598b6659cc
core: better handling of remote errors ( #3358 )
...
* Allow ExitCode exceptions to do their job
* Use appropriate error type
* Close TLS server when cancelling connected remote host
* Add timeout errors
* Bump simplexmq
* extract common timeout value
2023-11-13 18:39:41 +00:00
Evgeny Poberezkin
72b25385ba
core: event when new remote host added ( #3355 )
2023-11-12 21:43:43 +00:00
Evgeny Poberezkin
92e3f576ca
core: return controller app info in response when connecting, validate ID key ( #3353 )
2023-11-12 14:40:49 +00:00
Alexander Bondarenko
227007c8f6
add /switch remote host ( #3342 )
...
* Add SwitchRemoteHost
* Add message test
* Match remote prefix and the rest of the line
* Move prefix match to utils
2023-11-10 17:49:23 +00:00
Alexander Bondarenko
f41861c026
core: terminate remote control TLS connection on both sides ( #3338 )
...
* handle session setup errors
* add command/async wrapper
* move furniture around
* detect disconnects and force them with closeConnection
* simplify http server log
* close TLS in other cases
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-09 22:43:44 +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
8482dbfd99
core: update remote API commands/events ( #3295 )
...
* core: update remote API
* Add session verification event between tls and http2
* roll back char_ '@' parsers
* use more specific parser for verification codes
* cabal.project.local for mac
---------
Co-authored-by: IC Rainbow <aenor.realm@gmail.com >
2023-11-01 19:08:36 +00:00
Alexander Bondarenko
02c0cd5619
Cut at attaching http server/client ( #3299 )
...
* Cut at attaching http server/client
* switch to xrcp branch
2023-11-01 10:48:58 +00:00