Evgeny
f6c699f3a5
core: update simplexmq (error handling) ( #6231 )
...
* core: update simplexmq (error handling)
* update simplexmq
2025-08-29 10:05:20 +01:00
Evgeny
88547ab704
core: use longer timeouts for background network requests, support retries with increased timeouts ( #6043 )
...
* core: use longer timeouts for background network requests, support retries with increased timeouts
* ios: update types
* ios: allow user retry actions with failed network requests
* build: add exporting API functions with retry
* android, desktop: update types and C APIs
* android, desktop: alert to retry action on network error
* simplexmq
2025-07-07 11:01:03 +01:00
Evgeny
96dcf16cc3
core: update simplexmq ( #5941 )
...
* core: update simplexmq
* update types
2025-05-24 16:49:45 +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
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
Evgeny
0f301adc57
core: xrcp encryption with forward secrecy ( #4926 )
...
* core: xrcp encryption with forward secrecy (tests intermittently fail)
* track and correlate keys
* simplify
* refactor
* remove comment
2024-09-24 09:25:41 +01:00
Evgeny Poberezkin
4be6c69633
core: update simplexmq
2024-04-10 08:49:06 +01:00
Evgeny Poberezkin
69218952c3
core: 5.6.1.0
2024-04-01 14:36:45 +01:00
Evgeny Poberezkin
d90e2f4436
core: remove mtl typeclasses to reduce overhead ( #3975 )
...
* core: remove mtl typeclasses to reduce overhead
* strict data, optimization
* update simplexmq, clean up
* un-unlift attachRevHTTP2Client
* remote
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-04-01 13:34:45 +01:00
Evgeny Poberezkin
af22348bf8
core: use version from config, add tests ( #3588 )
...
* core: use version from config, add tests
* comment
* refactor
2023-12-24 13:27:51 +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
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
d29f1bb0cf
core: use fourmolu styles ( #3470 )
2023-11-26 18:16:37 +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
b71daed3ec
core: include session code in all session states ( #3374 )
2023-11-15 13:17:31 +00:00
Evgeny Poberezkin
0a4920daae
core: encrypt stored/loaded remote files ( #3366 )
...
* core: encrypt stored/loaded remote files
* simplexmq
* constant
2023-11-14 16:44:12 +00:00
Evgeny Poberezkin
c91625b32a
core: update remote host session state, terminate TLS in one more case ( #3364 )
...
* core: update remote host session state, terminate TLS in one more case
* name
2023-11-13 20:16:34 +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
92e3f576ca
core: return controller app info in response when connecting, validate ID key ( #3353 )
2023-11-12 14:40:49 +00:00
Evgeny Poberezkin
02225df274
core: remote control command/response encryption and signing inside TLS ( #3339 )
...
* core: remote control command/response encryption inside TLS (except files, no signing)
* sign/verify
* update simplexmq
* fix lazy
* remove RSNone
2023-11-10 16:10:10 +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
Evgeny Poberezkin
3dd62ab05a
core: remove Hello from the app remote protocol ( #3336 )
2023-11-09 09:37:56 +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
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
Alexander Bondarenko
be44632b0b
implement some of the robust discovery rfc ( #3283 )
...
* implement robust discovery
* remove qualified
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-10-30 14:00:54 +00:00
Evgeny Poberezkin
d90da57f12
core: store/get remote files ( #3289 )
...
* core: store remote files (wip)
* fix/test store remote file
* get remote file
* get file
* validate remote file metadata before sending to controller
* CLI commands, test
* update store method
2023-10-29 19:06:32 +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
Alexander Bondarenko
e1bd6a93af
use multicast address for announce ( #3241 )
...
* use multicast address for announce
* Add explicit multicast group membership
* join multicast group on a correct side
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-10-23 13:44:04 +01:00
Alexander Bondarenko
0d1a080a6e
remote protocol ( #3225 )
...
* draft remote protocol types and external api
* types (it compiles)
* add error
* move remote controller from http to remote host client protocol
* refactor (doesnt compile)
* fix compile
* Connect remote session
* WIP: wire in remote protocol
* add commands and events
* cleanup
* fix desktop shutdown
* prepare for testing remote files
* Add file IO
* update simplexmq to master
with http2 to 4.1.4
* use json transcoder
* update simplexmq
* collapse RemoteHostSession states
* fold RemoteHello back into the protocol command
move http-command-response-http wrapper to protocol
* use sendRemoteCommand with optional attachments
use streaming request/response
* ditch lazy body streaming
* fix formatting
* put body builder/processor closer together
* wrap handleRemoteCommand around sending files
* handle ChatError's too
* remove binary, use 32-bit encoding for JSON bodies
* enable tests
* refactor
* refactor request handling
* return ChatError
* Flatten remote host
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-10-22 09:42:19 +01: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
41b86e07f1
core: update api ( #3221 )
2023-10-15 00:18:04 +01:00
Alexander Bondarenko
91561da351
core: http transport for remote session ( #3178 )
...
* Wire some of the session endpoints
* Start sending remote commands
* Expand remote controller
- Fix queues for pumping to remote
- Add 3-way test
- WIP: Add TTY wrapper for remote hosts
- Stop remote controller w/o ids to match starting
* Fix view events
* Drop notifications, add message test
* refactor, receive test
* hunt down stray asyncs
* Take discovery sockets in brackets
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-10-07 14:23:24 +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
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
6c0d1b5f15
Notify about handover errors
2023-09-29 16:53:05 +03:00
IC Rainbow
af2df8d489
Rewrite remote controller
2023-09-29 15:01:05 +03:00
IC Rainbow
cccb3e33fb
Plug discovery into remote controller UI
2023-09-27 18:24:38 +03:00
IC Rainbow
77410e5d5e
Add remote host discovery
2023-09-27 13:40:19 +03: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