Evgeny Poberezkin
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
13a60d1d39
use ChaChaDRG as the source of randomness ( #920 )
...
* use ChaChaDRG as the source of randomness
* remove functions using entropy directly
* comment
2023-12-21 00:12:08 +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
Alexander Bondarenko
6bffcc8503
compatibility with GHC 8.10.7 ( #906 )
...
* build with ghc-8.10
* add 8.10 to matrix
* cleanup
* stats
* remove getField
* agent
* server
* remote
* space
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-29 12:53:06 +00:00
Evgeny Poberezkin
4660ee9cff
agent: revert to TVar ( #883 )
2023-11-01 09:15:51 +00:00
Evgeny Poberezkin
b5f733d2db
agent: use IORef for DRG ( #882 )
2023-10-31 23:52:13 +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
spaced4ndy
d920a2504b
agent: check confirmed snd queue doesn't exist before replacing ( #871 )
2023-10-25 09:48:54 +04:00
Evgeny Poberezkin
9d12d76078
add fourmolu ( #868 )
...
* add fourmolu
* linebreak
* simplify
* comment
2023-10-22 09:20:14 +01:00
spaced4ndy
deb3fc7359
agent: order by internal id when retrieving pending messages ( #867 )
2023-10-19 20:17:12 +04:00
Alexander Bondarenko
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
887ccbcf6c
Merge branch 'master' into master-ghc9
2023-09-10 18:00:33 +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
dc65197cfd
Merge branch 'master' into master-ghc9
2023-08-26 16:54:09 +01:00
Evgeny Poberezkin
4c0b8a31d2
agent: create parent folders when creating the database
2023-08-26 16:53:31 +01:00
Moritz Angermann
002f36dde0
5.4.0.0: use ghc 9.6.2 ( #791 )
...
* Add 9.6 compat
* compile with GHC9.6.2: dependencies, imports, code
* refactor typeclasses
* refactor record dot
* update cabal version
* update github actions
* update direct-sqlcipher
* 5.4.0.0
* update cabal.project
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-08-24 20:22:02 +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
Evgeny Poberezkin
b329eb9a86
agent: fix async JOIN ( #827 )
...
* agent: fix async JOIN
* refactor
2023-08-20 18:45:16 +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
Evgeny Poberezkin
6314bb1706
agent: partially fix message queries, debug message times ( #810 )
...
* agent: partially fix message queries, debug message times
* fix more joins
2023-07-22 13:00:25 +01:00
spaced4ndy
7e2b309450
migration to delete expired messages ( #801 is suspected to have caused temporary traffic increase due to flood of non expired messages) ( #806 )
2023-07-20 16:15:33 +04:00
Evgeny Poberezkin
58cb2855d2
agent: delivery receipts ( #752 )
...
* rfc: delivery receipts
* update doc
* update rfc
* implementation plan, types, schema
* migration, update types
* update types
* rename migration
* export MsgReceiptStatus, JSON encoding
* update rfc, schema
* correction
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* skeleton of the implementation
* more implementation (some tests fail)
* more code, 1 test fails
* fix encoding
* refactor
* refactor
* test, fix
* only send receipts in v3+, test
* flip condition
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* flip condition
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* agent version 4 required to send receipts
* fix test
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2023-07-13 22:33:48 +01:00
spaced4ndy
1afcefa5e7
db error busy treatments ( #796 )
2023-07-11 20:19:20 +04:00
spaced4ndy
0e1562deae
increase connection agent version according to received messages; add version and flags to connection stats, bump currentSMPAgentVersion ( #789 )
2023-06-30 20:19:10 +04:00
spaced4ndy
8be2505fa0
ratchet re-synchronization ( #774 )
...
* ratchet re-synchronization rfc wip
* additions
* additions, types
* fix tests
* re-sync implementation wip
* re-sync implementation 1st rev.
* test wip
* test passes
* doc
* wording
* improve doc schema
* single agreed state
* refactor (1 state variable)
* allowed -> required
* prohibit enqueue
* enqueue
* send via multiple queues
* test with server offline
* clarify errors
* rename
* more tests
* refactor
* rename AgentRKey
* rename AM_CONN_RATCHET_KEY
* more tests
* rename
* write encoded AgentRatchetInfo to AgentRatchetKey info
* move withConnLock
* refactor qDuplex
* re-create ratchet on receiving second key
* invert condition
* refactor
* simplify
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-06-30 14:17:08 +04:00
Evgeny Poberezkin
4a927d1ae2
ntf server: better batching and logging ( #780 )
...
* ntf server: better batching and logging
* reduce batch delay for ntf server
* comments
* 5.1.3, ntf 1.4.2
* more logging
* more logging
* split large batches, more logging
* remove some logs
2023-06-26 20:14:35 +01:00
spaced4ndy
011e1109e9
connection switch - track status, stop switch command ( #764 )
...
* connection switch improvements
* stop in transaction
* refactor
* checks in transaction
* withSwitchingRQ in transaction
* withSwitchedSQ in transaction
* refactor
* refactor
* inverse some cases
* reset snd switch progress on repeat qadd
* remove unused functions
* connection info type
* correction
* SPFinalizing phase, correctly update connection in event
* refactor
* tests
* refactor switch conn lock taking, take lock in switch stop, remove ineligible test
* comment
* corrections
* corrections
* corrections
* refactor
* remove checks in transactions, remove some statuses
* remove diff
* refactor
* refactor tests
* update connection in memory
* revert diff
* corrections
* more tests
* remove statuses, change switching queue lookup
* async queue deletion
* refactor
* lock, phases
* test status
* refactor
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-06-15 11:15:46 +04:00
spaced4ndy
4a3c5abf32
add with withTransaction version with logging ( #757 )
2023-05-26 20:33:48 +04:00
spaced4ndy
6c6f22051d
check previous encrypted message hashes for duplicates on decryption errors ( #756 )
2023-05-17 15:42:57 +04:00
spaced4ndy
ce64c91d5a
add indexes for reading pending files ( #751 )
2023-05-10 15:17:26 +04:00
spaced4ndy
8954f39425
agent: vacuum on migrations ( #745 )
...
* agent: vacuum on migrations
* vacuum after all migrations
* style
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-05-04 17:26:05 +04:00
spaced4ndy
af3f70829d
xftp: remove user id from internal deletion apis ( #739 )
2023-04-25 12:48:10 +04:00
spaced4ndy
9f0b9a83d6
xftp: use chunk digest as entity id for transport session ( #725 )
2023-04-14 13:01:14 +04:00
spaced4ndy
e346a81e46
xftp: delete snd files on servers ( #722 )
2023-04-13 17:46:43 +04:00
spaced4ndy
e6e17ec637
xftp: api to delete snd files internally, cleanup snd files, tests ( #719 )
2023-04-12 14:50:40 +04:00
spaced4ndy
d35bd8a954
xftp: restore snd files, expire snd files in agent ( #718 )
2023-04-11 22:00:09 +04:00
spaced4ndy
d1774e5b56
xftp: send progress events ( #717 )
2023-04-11 19:36:51 +04:00
spaced4ndy
9c460966b2
xftp: use recoverable send implementation instead of experimental, fix query, tests ( #716 )
2023-04-11 11:10:57 +04:00
Evgeny Poberezkin
2edc7529f9
xftp: client function to create new chunk ( #712 )
...
* xftp: client function to create new chunk
* remove chunk digest update
* rename
2023-04-07 14:50:38 +01:00
spaced4ndy
3533929905
xftp: transform SndFile to recipient descriptions; non optional chunk digest ( #710 )
2023-04-07 14:29:07 +04:00
spaced4ndy
d8e60ecfdb
xftp: recoverable send - spike ( #707 )
2023-04-07 11:19:50 +04:00
spaced4ndy
bdff274f56
use Int64 for time calculations ( #706 )
2023-04-04 14:51:13 +04:00