Evgeny Poberezkin
06c676695b
agent: contact request rejection (not finished)
2025-03-02 22:29:28 +00:00
spaced4ndy and Evgeny Poberezkin
7ac80bffcb
agent: store shared message body only once (when it is the same across messages when batching) ( #1453 )
...
* agent: store shared message body only once (when it is the same across messages when batching)
* rename
* refactor
* refactor
* save bodies and messages in single transaction
* comment
* comment
* comment
* box
* mapME
* box
* ValueOrRef
* remove instances
* refactor
* comments
* test
* refactor
* mapAccumLM compatibility with ghc 8.10.7
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2025-02-14 18:01:40 +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
9893935e7c
agent: fix acceptContact inconsistent state after app restart ( #1412 )
2024-12-05 19:27:21 +04:00
Evgeny
97104988a3
server: support server roles and operators ( #1343 )
...
* server: support server roles and operators
* make server operator optional
* allRoles
* fix test
* different server host in tests
* remove ServerCfg fields used only in UI
* comments
* choose different server for invitation when connecting via address
* fix test in ghc8107
* simplify
2024-11-22 16:43:37 +00:00
Evgeny
bbcb1abfda
agent: treat blocked STM and other critical errors that offer restart as temporary ( #1405 )
2024-11-21 22:01:19 +00:00
Evgeny Poberezkin
9078118a6d
Merge branch 'master' into journal-store
2024-10-25 15:43:04 +01: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
Evgeny
0414ea59f0
smp server: journal message store ( #1370 )
...
* smp server: remove STM function from MsgStore
* polymorphic MsgStore
* jourmal storage for messages (WIP)
* more journal, test setup
* writeMsg
* test
* tryDelMsg
* delMsgQueue
* remove MsgStoreClass instance of existential wrapper for Msg stores
* store config
* extract common logic out of store instances
* add store type to config
* open journals, cache last message, tests pass
* CLI commands
* refactor import/export messages
* cli commands to import/export journal message store
* export journal without draining, import/export tests
* journal command
* import/export progress
* better progress info
* only log queue state once when importing
* logs
* handle IO errors in journal store, return as STORE error
* recover from state file errors
* fix message files after crash
* fix messages folder
2024-10-21 11:50:30 +01:00
Evgeny
e01398a31a
agent: send MSGNTF on NO_MSG error ( #1362 )
...
* agent: send MSGNTF on NO_MSG error
* simplify
2024-10-07 10:22:58 +01:00
spaced4ndy and Evgeny Poberezkin
49935473ae
ntf: agent to notfiy MSGNTF on successful ack ( #1355 )
...
* ntf: agent to notfiy MSGNTF on successful ack
* move msgntf
* release lock earlier
* fix tests
* do not release get lock
* fix
* diff
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-10-06 19:48:22 +01:00
spaced4ndy
243548631a
ntf: repeat failed token deletions ( #1346 )
2024-10-01 16:30:14 +04:00
spaced4ndy
e808825c95
ntf: fix endless worker loop ( #1345 )
2024-09-30 15:29:14 +01:00
spaced4ndy and Evgeny Poberezkin
9cf6c97137
ntf: batch ntf worker command processing ( #1337 )
...
* ntf: batch ntf worker command processing
* remove comment
* change batch size
* wip
* catch
* refactor
* refactor
* batch check
* refactor
* reschedule
* increase ntfSubCheckInterval
* first check interval
* check more statuses
* refactor, remove foldr'
* refactor 2
* refactor client
* refactor 3
* ntf server: improve support for batched commands (#1340 )
* re-create ntf subscriptions on NTF AUTH errors
* name
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-09-29 18:50:38 +01:00
spaced4ndy and Evgeny Poberezkin
81fcdf8ac9
ntf: batch smp worker command processing ( #1331 )
...
* ntf: refactor smp worker (separate command processing into steps)
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-09-25 15:00:06 +04:00
Evgeny
1f67b403de
agent: function to get multiple work items ( #1330 )
2024-09-25 10:55:45 +01:00
Evgeny
8e7f3f7b27
agent: return full argument with batched results ( #1332 )
2024-09-24 16:16:52 +01:00
Evgeny
22260cd719
agent: transport isolation mode "Session" (default) to use new SOCKS credentials when client restarts or SOCKS proxy configuration changes ( #1321 )
...
* agent: transport isolation mode "Session" (default) to use new SOCKS credentials when client restarts or SOCKS proxy configuration changes
* fix test
2024-09-22 22:22:05 +01:00
Evgeny
344a295845
agent: error when user record is not in database ( #1303 )
2024-09-08 16:50:22 +01:00
Evgeny
ce6777b68d
newtype for server entity IDs, fix TRcvQueues ( #1290 )
...
* put DRG state to IORef, split STM transaction of sending notification (#1288 )
* put DRG state to IORef, split STM transaction of sending notification
* remove comment
* remove comment
* add comment
* revert version
* newtype for server entity IDs, fix TRcvQueues
* Revert "put DRG state to IORef, split STM transaction of sending notification (#1288 )"
This reverts commit 517933d189 .
* logServer
2024-08-30 12:50:02 +01:00
Evgeny
ab4acadcc1
agent: fix stuck connection commands when server is not responding ( #1276 )
...
* agent: fix stuck connection commands when server is not responding
* fix
* rename
* test SKEY retry
2024-08-24 13:54:20 +01:00
Evgeny
571d148bdf
agent: do not start delivery workers when there are no messages to deliver ( #1263 )
...
* agent: use weak ThreadId and forkIO in workers instead of async (reduce memory)
* agent: do not start and exit delivery workers when there are no messages to deliver (#1264 )
* agent: exit delivery workers when no messages to deliver
* only start delivery workers when there are pending messages
* fix
* focus test
* enable all tests
* lift
* do not exit workers when there is no work
2024-08-18 21:30:06 +01:00
Evgeny
f229e135e3
agent: reduce subscription transactions ( #1259 )
...
* agent: reduce subscription transactions
* nub
* remove commented
2024-08-16 10:06:22 +01:00
Evgeny
47dd0c4c64
agent: do not send worker crash errors when agent is not active (stopped) ( #1256 )
2024-08-09 21:10:27 +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
f4d1a33ed8
agent: retry loop that resumes subscriptions as soon as agent is moved to foreground, suspend retry loops while agent is suspended ( #1249 )
...
* agent: retry loop that resumes subscriptions as soon as agent is moved to foreground, suspend retry loops while agent is suspended
* reset retry enterval when moving to foreground
* account for network state too
* simplify
* typo
* simplify
2024-08-05 15:09:46 +01:00
Evgeny Poberezkin
9093c7b120
agent, ntf server: only mark subscriptions as pending that were created by the disconnected client ( #1242 )
...
* ntf server: only mark subscriptions as pending if the disconnected client is current
* add sessionId to subscribed queue
* add sessionId to subscriptions in ntf server agent
* fix
2024-07-25 13:07:28 +01:00
spaced4ndy and Evgeny Poberezkin
c605156302
agent: getAgentSubsTotal api ( #1238 )
...
* agent: getAgentSubsTotal api
* move
* export
* count sessions
* simplify
* simplify 2
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-07-22 15:43:38 +01:00
Evgeny Poberezkin
051bf38bc7
agent: remove delays in notification processing, add notification stats ( #1235 )
...
* agent: remove delays in notification processing, add notification stats
* do not replace token after failed check
* more stats
* refactor
* fix
* backwards compatible JSON parsing
* retry deleting subscription on temporary error
* remove attempts to get multiple notification messages
* fix JSON decoding to be backwards compatible
2024-07-22 15:42:34 +01:00
Evgeny Poberezkin
8dd54ced0e
agent: retry proxied command on NO_SESSION error, to prevent failure of proxied interactive commands (like joining connection) ( #1227 )
2024-07-13 10:06:48 +01:00
Evgeny Poberezkin
e56bd0b47b
agent: add known servers ( #1225 )
...
* agent: add known servers
* test delays
* ServerCfg
* json encoding
* enabledServerCfg
* checkUserServers
2024-07-12 12:41:55 +01:00
Evgeny Poberezkin
9d0774a58e
agent: add queue information ( #1217 )
...
* agent: add queue information to "debug delivery" response
* fix test
* rename
* encodings
2024-07-03 19:32:27 +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
a99ce6122c
secure queue by sender via proxy (proxy SKEY command) ( #1210 )
...
* client: secure queue by sender via proxy (proxy SKEY command)
* agent and server: proxy SKEY command
2024-06-30 16:20:54 +01:00
Evgeny Poberezkin
a6b542b301
Merge branch 'master' into fast-connection
2024-06-30 15:00:28 +01:00
Evgeny Poberezkin
6a54a58a0d
agent: remove legacy statistics ( #1211 )
...
* agent: remove legacy statistics
* delays after disposeAgent
* delays
* enable all tests
* more delays
2024-06-30 12:50:42 +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 and Evgeny Poberezkin
4bbadffa37
agent: api to reconnect single server ( #1198 )
...
* agent: api to reconnect single server
* refactor
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2024-06-16 06:27:25 -07:00
Evgeny Poberezkin
3d605310ed
agent: remove protocol encodings and agent TCP server ( #1189 )
...
* rfc: remove agent protocol encodings
* agent: remove protocol encodings and agent TCP server
* update
* remove unused code
* remove
* move tests
* add delay to tests
* stabilize test
* test
* more delays
* reduce delays
* enable all tests
* delays
* style
2024-06-05 14:34:40 +01:00
Evgeny Poberezkin
3dab330480
use throwE instead of throwError ( #1187 )
...
* use throwE instead of throwError
* test delay
2024-06-05 11:20:50 +01:00
Evgeny Poberezkin
d28b17e787
xftp server: send HTTP2 error as timeout error to the client so it is treated as temporary ( #1186 )
...
* xftp server: log file reception error
* report HTTP2 error as timeout error
* reduce timeout to 5 min
* process timeout error in protocol response
* log warning on timeout/HTTP2 error
2024-05-31 22:18:28 +01:00
Evgeny Poberezkin and spaced4ndy
88f1b727e0
SMP protocol extension to debug subscribed SMP queues ( #1181 )
...
* SMP protocol extension to debug subscribed SMP queues
* fix, test
* corrections
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* increase delays
* increase timeout
* delay
* delay
* enable all tests
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-05-30 18:49:43 +01:00
spaced4ndy
97a953550f
agent: getAgentQueuesInfo ( #1180 )
2024-05-30 14:21:29 +04:00
Evgeny Poberezkin
63f5e76f9c
agent: treat absent proxy session as a temporary error to retry sending ( #1178 )
...
* agent: treat absent proxy session as a temporary error to retry sending
* enable all tests
2024-05-29 08:06:01 +01:00
Evgeny Poberezkin
2ff5f5a832
agent: add context to CMD error ( #1167 )
...
* agent: add context to CMD error
* tests, more warnings
* fix tests
* log TBQueue sizes
* log locks
* more logs
* log sendMessagesB
* fix test
* log length
* refactor
* remove logging
* revert lock scope change
* cleanup
* add string error to A_PROHIBITED
* remove
* remove test limitations
* language
2024-05-24 14:13:01 +01:00
Evgeny Poberezkin
e7a73a4c89
Merge branch 'stable'
2024-05-23 22:04:06 +01:00
Evgeny Poberezkin
6309f92c68
agent: fail if non-unique connection IDs are passed to sendMessages ( #1170 )
2024-05-23 22:01:57 +01:00
Evgeny Poberezkin
875a56b75a
Merge branch 'stable'
2024-05-23 16:48:11 +01:00