Evgeny
e78ab60c97
build: fix postgres ( #1444 )
2025-01-28 22:02:41 +00:00
Evgeny
eda9e36c82
agent: track queries ( #1439 )
2025-01-24 10:31:50 +00:00
spaced4ndy
9d9ec8cd0b
agent: remove unused functions ( #1432 )
...
* agent: remove unused functions
* cleanup imports
2025-01-10 07:59:17 +00:00
Evgeny
992b42e922
agent: option to enable/disable vacuum after SQLite migration ( #1429 )
2024-12-28 21:06:42 +00:00
Evgeny Poberezkin
cfde5932fd
agent: restore methods for backwards compatibility with simplex-chat
2024-12-28 10:33:22 +00:00
spaced4ndy
b7a8df40c4
Merge branch 'master' into postgres
2024-12-25 12:15:41 +04:00
spaced4ndy and Evgeny Poberezkin
bf28902327
agent: reuse ratchet on repeat join ( #1426 )
...
* agent: reuse ratchet on repeat join
* check status
* update
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-12-25 00:07:45 +00:00
spaced4ndy and Evgeny Poberezkin
cf66aadc20
postgres: store implementation, conditional compilation ( #1421 )
...
* postgres: implementation wip
* to from field
* agent store compiles
* methods
* create store
* tests wip
* migration tests pass
* tests compile
* fix tests
* tests wip
* bool int
* tests wip
* tests wip
* more boolint
* more fixes
* more fields pass
* more fixes
* binary
* instances, binary
* test passes
* remove todos, more tests pass
* fix conflict
* fix bool
* fix sequence breaking
* fix insertedRowId
* skip ratchet re-synchronization tests
* after test
* file tests
* after test
* rename
* remove comment
* format
* remove unused
* suppress notices
* fixes
* move
* fix
* instance
* instance2
* fix
* instances
* comment
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-12-20 15:54:58 +04:00
spaced4ndy
64149599de
postgres: db interfaces wip (sqlite passes) ( #1419 )
2024-12-12 17:42:58 +04:00
spaced4ndy and Evgeny Poberezkin
a8471eed5b
ntf: get messages for multiple last notifications ( #1378 )
...
* ntf: get messages for multiple last notifications (#1352 )
* ntf: separate get ntf conns api (#1379 )
* ntf: separate get ntf conns api
* nonempty
* update
* update
* remove single get api
* fix test
* refactor
* refactor
* ntf: batch get connections (#1387 )
* ntf: batch get apis
* works
* fix
* fix
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-10-25 15:39:41 +04:00
spaced4ndy
e1201f0967
agent: test db indexes ( #1364 )
2024-10-09 15:16:08 +04:00
spaced4ndy
243548631a
ntf: repeat failed token deletions ( #1346 )
2024-10-01 16:30:14 +04:00
Evgeny Poberezkin
aa60bd6770
use strict Maps, fix stats for sent END batches
2024-08-26 19:35:57 +01:00
Evgeny
53e829a21c
agent: store query errors, reduce slow query threshold to 1ms ( #1277 )
...
* agent: collect query errors stats
* simplify
* test
* use microseconds
* parens
* revert change to track all queries, reduce threshold to 1 ms
2024-08-24 14:51:26 +01:00
Evgeny
7762b4d364
reduce the number of STM transactions ( #1255 )
...
* reduce the number of STM transactions
* reduce STM more
* refactor
* remove more
2024-08-09 16:38:46 +01:00
Evgeny Poberezkin
3753379ae4
agent: support dababase access with high priority for more responsive user actions ( #1248 )
...
* agent: support dababase access with high priority for more responsive user actions
* rename, export
* fix
2024-07-29 18:57:16 +01:00
spaced4ndy and Evgeny Poberezkin
ae8e1c5e9a
agent: servers stats improvements, fixes ( #1208 )
...
* agent: reset stats startedAt time in memory
* getAgentSubsSummary
* change sub counting
* ack statistics
* add import
* instance
* Revert "instance"
This reverts commit 1f63740d56 .
* Revert "add import"
This reverts commit ef72df8014 .
* modify sub counting
* modify conn creation counting
* use int64
* file size stats
* remove import
* ack err counting
* conn del stats
* format
* new data
* add data
* toKB
* restore connCompleted
* use Int for counts
* use rq from scope
* remove getAgentSubsSummary
* fix connCompleted
* fix
* revert disabling stats
* use srv from scope
* combine ack stats
* modify
* comment
* count subs
* refactor
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-07-03 12:36:15 +01:00
Evgeny Poberezkin
5c839b40c9
Merge branch 'master' into fast-connection
2024-07-01 21:14:32 +01:00
spaced4ndy
a50e2e74a5
agent: disable saving stats ( #1214 )
...
* agent: disable stat saving
* disable migration
* schema
* disable restore
2024-07-01 21:06:38 +01:00
Evgeny Poberezkin
9ee684b0f4
rfc: faster handshake protocol ( #1203 )
...
* rfc: faster handshake protocol
* update
* 1 message
* SKEY
* use SKEY for both parties
* test
* update doc
* NEW command parameter
* add k=s param to queue URI
* fix
* add sndSecure field to queues
* make sender key non-optional in SndQueue (WIP, tests fail)
* fast handshake sometimes works (many tests fail)
* correctly handle SKEY retries, avoiding to re-generate the keys
* handle SKEY retries during async connection
* fix most tests (1 test fails)
* remove do
* fix contact requests encoding/tests
* export
* fix: ignore duplicate confirmations, fixes testBatchedPendingMessages
* do not store sndSecure in store log if it is false to allow server downgrade
* add connection invitation encoding tests
2024-06-30 08:36:24 +01:00
spaced4ndy and Evgeny Poberezkin
c788692687
agent: servers summary types, api ( #1202 )
...
* agent: servers summary types, api [wip]
* encoding
* export
* Revert "export"
This reverts commit cd9f315fe8 .
* comment
* rename
* simplify types
* uncomment
* comment
* rework
* comment, exports
* save, restore stats wip
* remove
* rename
* save stats periodically
* sigint, sigterm experiments
* corrections
* remove some proxy stats
* increase stat
* proposed stats
* fields
* Revert "sigint, sigterm experiments"
This reverts commit f876fbd418 .
* wip
* retries -> attempts
* errs
* fix
* other errs
* more stat tracking
* sub stats
* remove xftp successes stats
* xftp stats tracking
* revert
* revert
* refactor
* remove imports
* comment
* Revert "refactor"
This reverts commit 26c368d82a .
* Revert "revert"
This reverts commit 4c9e3753b5 .
* Revert "revert"
This reverts commit 6f65644053 .
* todos
* persistence
* rename, fix
* config
* comment
* add started at to summary
* delete stats on user deletion
* reset api
* move
* getAgentServersSummary collect state logic
* corrections
* corrections
* remove
* rework
* decrease contention
* update
* more stats
* count sentProxied
* count subs
* remove unused
* comment
* remove comment
* comment
* export
* refactor
* cleanup
* intervals
* refactor
* refactor2
* refactor3
* refactor4
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2024-06-25 09:42:59 +04:00
spaced4ndy
2e5433676e
xftp: check proxy before downloading from unknown server ( #1102 )
...
* xftp: check proxy before downloading from unknown server
* corrections
* remove import
* tests
* comment
* tests
* don't wrap into internal error
* fix tests
2024-05-20 14:14:04 +01:00
Evgeny Poberezkin
f51cf1deac
agent: use MVar for DB connection for more fair connection distribution between threads ( #1147 )
2024-05-14 20:04:51 +01:00
Alexander Bondarenko and Evgeny Poberezkin
2cad0cb201
core: check ACK handling with return type ( #1041 )
...
* core: check ACK handling with return type
* fix ratchet sync
* add SQL Locked to dbBusyLoop
* rename
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-03-11 19:06:53 +00:00
Evgeny Poberezkin
4ffb6a348a
pqdr: use different newtypes for supporting and enabling PQ encryption in connections ( #1031 )
...
* pqdr: use different newtypes for supporting and enabling PQ encryption in connections
* rename field, fix test
* refactor
2024-03-06 21:28:03 +00:00
Evgeny Poberezkin and spaced4ndy
e06e22328f
agent: quantum-resistant double ratchet encryption ( #939 )
...
* doc
* diff
* ratchet header
* types
* ratchet step with PQ KEM, message header with KEM
* comment
* update types, remove Eq instances, store KEM keys to database
* pqx3dh
* PQ double ratchet test
* pqdr tests pass
* fix most tests
* refactor
* allow KEM proposals from both sides
* test names
* agent API parameters to use PQ KEM
* initialize ratchet state for enabling KEM
* fix/test KEM state machine to support disabling/enabling via messages
* more tests
* diff
* diff2
* refactor
* refactor
* refactor
* refactor
* remove Maybe
* rename
* add PQ encryption status to CON, MID and MSG events and sendMessage API results
* different PQ parameter when creating connection
* rename/reorganize types for PQ encryption modes
* rename
* fix testWaitDeliveryTimeout
* rename
* rename2
* ghc8107
* rename
* increase timeouts for concurrent send/receive test
* enable all tests
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-03-03 19:40:49 +00:00
spaced4ndy and Evgeny Poberezkin
294d7ec8dd
agent: delay connection deletion to finish delivery of pending messages ( #1015 )
...
* agent: delay connection deletion to finish delivery of pending messages (wip)
* fixes, test
* notify, test
* add tests
* comment
* add test
* timeout
* test timeout
* up
* more tests
* rename
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-02-29 18:08:58 +00:00
Alexander Bondarenko
194a7bb58e
agent: remove redirect entries when deleting rcv files ( #995 )
...
* agent: remove redirect entries when deleting rcv files
* update schema dump
* use rcv_file primary key for redirect lookup
* allow multiple redirects
2024-02-16 19:49:50 +04:00
spaced4ndy
004597c764
agent: add index to file redirect migration ( #988 )
2024-02-14 18:47:39 +04:00
Alexander Bondarenko and Evgeny Poberezkin
2f7a288280
xftp: add sending and receiving via URI-encoded redirects ( #968 )
...
* xftp: add URI encoding for FileDescription
* tweak URI
* allow smaller blocks
* draft xftpReceiveFileFollow' and xftpSendFilePublic'
* add sending with redirect
* allow 64k chunks
* add migrations with redirect fields
* add test case
* fix deadlock
* revert CLI code
* WIP: working send/receive via URI
* fix field ambiguity
* cleanup
* update agent db schema
* update minimal chunk size
* add rfc
* apply suggestions from code review
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
* add createRcvFileRedirect
* extract Simplex.Messaging.ServiceScheme and reuse for files
* update db schema
* check size/digest on receive complete
* cleanup
* use SIZE/DIGEST errors for redirects too
* split digest/size errors from redirect checks
* fix redirect error encoding
* rename RedirectMeta to RedirectFileInfo
* use query encoding for file URI
* group maybe fields under RcvFileRedirect
* add extras field
* update rfc
* add extras encoding and no-redirect tests
* fix toStrict for old ghc
* extra client data in file descr URI
* remove decoded yaml file
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-02-13 14:08:49 +00:00
Evgeny Poberezkin and spaced4ndy
fd4eeb36db
agent: optimize expired messages query ( #976 )
...
* agent: optimize expired messages query
* schema
* fix query
* fix
* typo
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* fix
* refactor
* comment
* refactor2
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-01-22 14:04:57 +00:00
Evgeny Poberezkin
b547f34cc0
Revert "Revert "agent: do not create user record in new databases ( #957 )" ( #963 )" ( #964 )
...
* Revert "Revert "agent: do not create user record in new databases (#957 )" (#963 )"
This reverts commit aee9088417 .
* tests
* remove logging
2024-01-17 11:01:04 +00:00
Evgeny Poberezkin
aee9088417
Revert "agent: do not create user record in new databases ( #957 )" ( #963 )
...
This reverts commit 9b9a0bd0df .
2024-01-14 22:28:28 +00:00
Evgeny Poberezkin
9b9a0bd0df
agent: do not create user record in new databases ( #957 )
...
* agent: do not create user record in new databases
* update
2024-01-12 16:57:57 +00:00
Evgeny Poberezkin and spaced4ndy
7ddeca50e4
agent: mark work items failed ( #931 )
...
* agent: mark work items failed (WIP)
* add tests, created_at
* getWorkItem for snd and rcv files
* fix
* tests
* fix
* tests
* test
* tests
* rename
* fix,refactor
* add indexes
* update schema
* do not try to get more work when resuming an existing worker
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2023-12-26 17:00:42 +04:00
Evgeny Poberezkin
1e15d56e92
5.5.0.1: fix migration
2023-12-23 16:06:11 +00:00
Evgeny Poberezkin
2489333c87
agent: use DB to queue async commands and messages ( #929 )
...
* agent: use DB to queue async commands and messages
* fix message delivery, async commands dont work
* fix async commands
* remove comment
* rename
* comment
* balance agent operation
* empty lines
* balance another agent operation
* diff
* worker
* qAddress
* fix incorrect queue ID in v1
* types for queues
* fix test
* update index
2023-12-23 12:59:53 +00:00
Evgeny Poberezkin
fb113ff008
agent: include queries longer than 5ms into slow queries (was 50ms)
2023-12-12 15:34:49 +00:00
Evgeny Poberezkin
560dc55312
agent: notify about polled message processing (for iOS notifications) ( #908 )
...
* agent: notify about polled message processing (for iOS notifications)
* optionally keep key and support re-opening database
* exports
* test that cannot reopen when created with keepKey: false
* set max number of messages to receive for a notification to 3
2023-12-11 13:03:53 +00:00
Evgeny Poberezkin
511d793b92
derive JSON instances with TH ( #869 )
...
* derive JSON instances with TH
* defaultJSON
* remove ToJSON
2023-10-26 09:20:30 +01:00
Evgeny Poberezkin
9d12d76078
add fourmolu ( #868 )
...
* add fourmolu
* linebreak
* simplify
* comment
2023-10-22 09:20:14 +01:00
Alexander Bondarenko and Evgeny Poberezkin
96a38505d6
add FromJSON instances ( #856 )
...
* Add FromJSON instances
* add missing FromJSON instances
* more JSON instances
* update comments
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-10-05 15:57:53 +01:00
Evgeny Poberezkin
fda1284ae4
agent: support closing and re-opening store ( #855 )
...
* agent: support closing and re-opening store
* add closed flag, tests
2023-09-27 12:50:24 +01:00
Evgeny Poberezkin
5dc3d739b2
agent: support encrypted local files ( #837 )
...
* agent: support encrypted local files
* migration, update store, api
* tests, fix
* use CF.plain
2023-08-31 22:43:58 +01:00
Evgeny Poberezkin
d09adb5cd6
agent: wait for db (Revert Revert db error busy treatments ( #796 ) ( #808 )) ( #828 )
...
* Revert "Revert "db error busy treatments (#796 )" (#808 )"
This reverts commit 82aec2cd8f .
* update test
* combine pragmas
2023-08-21 09:06:51 +01:00
spaced4ndy
cf2a17b80c
agent: track count and average time for slow queries ( #824 )
2023-08-16 20:14:27 +04:00
spaced4ndy
e586bef57a
agent: add indexes to improve slow queries performance ( #823 )
2023-08-16 10:29:09 +04:00
Evgeny Poberezkin
e2065ab352
agent: track slow SQL queries ( #822 )
...
* agent: track slow SQL queries
* add executeMany
* reduce threshold for slow queries to 50ms
2023-08-12 18:18:10 +01:00
Evgeny Poberezkin
82aec2cd8f
Revert "db error busy treatments ( #796 )" ( #808 )
...
This reverts commit 1afcefa5e7 .
2023-08-09 12:24:03 +01:00
spaced4ndy
e81f3b5529
add indexes ( #809 )
2023-07-22 13:20:49 +01:00