mirror of
https://github.com/simplex-chat/simplexmq.git
synced 2026-11-02 22:03:09 +00:00
## Agent - Workers: a worker started by concurrent calls runs in one thread. `runWorkerAsync` put back a stale "not running" value after another call had taken the running one, and a worker restart wrote the same value, so a second thread executed the same commands (for example, a confirmation was sent twice and `CON` was emitted twice), or a caller blocked forever. - Delivery receipts that fail with AUTH are deleted without an error event. - Notification credentials are stored per receive queue rather than per connection. - The protocol client fails pending requests when its connection ends. - XFTP: a failure to remove a received file's temporary data is logged and no longer fails the worker; server test files have random names. ## Server - An inactive SMP client session ends without its connection being closed by the expiration thread. - An inactive HTTP2 session is ended by killing its thread rather than closing its TLS connection from another thread. - Static files: the timeout handler kills the connection thread and leaves the socket close to that thread. ## Dependencies - warp: simplex-chat/wai@63667cb5 (simplex-chat/wai#1). The timeout manager kills the connection thread without closing its socket. ## CI and tests - Tests run on a RAM disk on Linux. - Test HTTP2 clients are closed before their TLS connections; test temporary directories are cleared between suites.