See full changelog here.
Commits:
- clients, servers: drop support of SMP protocol versions before 01/2025 (#1837)
- Merge branch 'stable'
- agent: use double ratchet from the first message in contact addresses, request rejection, RPC (#1831)
- 7.1.0.0
- smp-server: add serverInfoBytes to THandleParams and related functions (#1836)
- agent: report PRXY broker errors as proxy-to-relay errors (#1842)
- server: prevent concurrent SKEY commands from overwriting queue sender key (#1844)
- smp server: fix handshake compatibility by moving server info to SMP v21 (#1845)
- 7.1.0.1
- build: expose Server.Information for client_library (#1849)
- 7.1.0.2
- xftp: prevent sender from writing files outside the destination folder (#1850)
- agent: drop versions before 07/2024 (support of PQ encryption and securing reply queue) (#1841)
- 7.1.0.3
- agent: fast queue rotation not requiring the current server to be online (#1847)
- 7.1.0.4
- xftp server: support storage time and BBS proofs of badge credential to extend it (#1856)
- 7.1.0.5
- servers: fix stale git commit in version (#1859)
- xftp: hash of the shared part of file description (#1865)
- xftp server: disable ack command (#1871)
- 7.1.0.6
- extend SMP protocol to support name availability queries by labelhash (#1863)
- 7.1.0.7
- smp-server: reduce Prometheus and expiration DB load (#1872)
- 7.1.0.8
- agent: PQ rachet security code, store AD and pqAD in database, bulk reading (#1874)
- ci: cancel stale runs (#1878)
- xftp: fix race when sending the file (#1879)
- agent: make QUOTA error temporary for async commands (#1881)
- agent: share server value across subscription rows of server-keyed queries (#1877)
- 7.1.0.9
- docs: update XRCP doc to make code verification optional for known connections (#1891)
- smp server: validate client version in forwarded command (#1890)
- agent: fix ratchet - dont save if body auth failed (#1892)
- docs: update SMP protocol (#1900)
- server: improve control port auth (#1898)
- xftp server: validate paths in store log (#1894)
- docs: clarify security model (#1902)
- 7.1.0.10
- smp-server: rework message expiration (#1873)
- resolver: multicall reads, keep-alive, workers and structured logs (#1883)
- smp protocol: bind agreed version of forwarded command (#1915)
- docs: add cryptographic primitive registry (#1913)
- xrcp: limit multicast validity time window (#1899)
- docs: use role names for key exchange parties (#1912)
- crypto: document 16-byte GCM IV in double ratchet (#1914)
- reject e2e params with kem_ct and without kem_key (#1901)
- sntrup761: bound KeyGen retries on R3 inversion (#1918)
- consider IP address protected only if it is used for the chosen host (#1895)
- agent: aggregate cap on skipped message keys (#1903)
- smp-server: check queue is not secured in link store (#1917)
- agent: keep ratchet hashes for connection lifetime, up to some cap, to prevent replay of expired ratchets (#1893)
- agent: resolve potential race conditions in double ratchet (#1923)
- Merge pull request #1922 from simplex-chat/ratchet
- smp: reduce min supported version to 15 (short links support, 3/30/2025) (#1931)
- agent: fail database transaction instantly when database is closed, prevent race conditions in command processing, fix race when uploading files (#1885)
- smp protocol: require fixed size corr ID when used as nonce, and min size msg ID to use as nonce (#1925)
- smp-server: copy entity IDs out of received block (#1906)
- agent: fix race when switching reception to the new queue (#1933)
- agent: migration to add index to read queues (#1934)
- agent: prepare invitation link, create ratchet when connection is prepared (#1880)
- smp server: delayed AUTH responses (#1937)
- ci: build cache (#1938)
- fix tests on ghc 8.10.7 (#1939)
- 7.1.0.11
- smp-server: enforce command concurrency limit (#1944)
- tests: execute in parallel, agent: fix race condition with files and when switching queue (#1932)
- smp-server: remove journal message store (#1919)
- smp-server: remove journal store leftovers (#1946)
- smp-server: remove deleted queues from store maps (#1947)
- 7.1.0.12
- agent: autoincrement IDs in sqlite (#1951)
- 7.1.0.14
- agent: known host, smp protocol: parse empty messages (#1953)
- smp server: check correlation ID of forwarded transmission (#1954)
- server: retry accept, cache static files (#1962)
- ntf server: one db connection to find subscription (#1956)
- smp-server: fix notification store key leak (#1907)
- transport, crypto: certificate chain, keys and DH secret (#1964)
- agent: report duplicate connection when joining a used one-time link (#1970)
- lib: parse IPv6 addresses with IPv4 suffix (#1969)
- agent, server: one thread per worker; close sockets in reader threads (#1972)
- xftp: prohibit YAML aliases, limit file description replicas (#1965)
- clients: close interrupted connection attempts (#1967)
- smp server: keep queues blocked with notice after restart and import (#1971)
- ntf server: continue notifications when SMP service becomes unavailable (#1976)
- xftp: close connection after failed handshake (#1974)
- ci: one reduced build job on draft pull requests and manual runs (#1986)
- docs: CLAUDE.md importing the contributing and CI guides (#1990)
- xftp server: release storage of interrupted uploads (#1977)
- ci: reduced build on pushes to master and stable in forks (#1991)
- agent, ntf server: add lookupOrInsertIO, use it for locks and stats (#1989)
- tests: name the test in retry lines (#1994)
- resolver: read .simplex reservations from the name policy (#1993)
- 7.1.0.15
- smp server: deliver later messages after SUB while a delivery waits (#2006)
- names: available names carry the terms their buyer accepts (#2003)
- 7.1.0.16
- ntf server: validate APNS server certificate and host name (#1998)
- resolver: answer a subname only while its name's holder holds it (#2013)
- xftp: limit chunk size in received file descriptions (#2001)
- agent: validate xrcp host certificate chain against paired CA (#2000)
- servers: serve web pages over HTTP/1.1 (#1999)
- agent: use private routing for name lookups to known servers (#2002)
- xftp: send and receive files through servers before v6.5.0 (#2021)
- tests: flip one bit in each field of the tampered BBS proof (#2022)
- ntf server: resume push notifications after APNS errors (#2020)
- xftp: reject file descriptions with very long numbers (#2018)
- agent: deliver messages between 7.0 and 7.1 apps in old connections (#2023)
- 7.1.0.17
- agent: acquire connection locks in order when sending (#2019)
- agent: complete file uploads when the app leaves the foreground (#2010)
- xftp: receive files with many chunks, always report receive errors (#2025)
- tests: cover SMP server subscription changes (#2029)
- lib, ntf server: reject null byte in host and server without key hash (#2027)
- xftp: limit the redirect file of a description to 4 MB (#2026)
- lib: evaluate the new TVar state in stateTVar updates (#2031)
- tests: accept agent events from independent threads in any order (#2032)
- smp server: deliver messages sent while the recipient subscribes (#2008)
- smp server: decrease service subscription count on DEL and SUBS (#2046)
- ntf server: prevent hanging on server stop (#2041)
- docs: mark pull requests ready for review before the approval (#2024)
- smp server: deliver notifications in bounded transactions (#1996)
- servers: read one message per queue in SUB, omit DB connection string (#2007)
- smp-server: process forwarded messages to different queues in parallel (#2047)
- smp-server: forward worker queue length and command time metrics (#2048)
- agent: accept confirmations only with the client version that the agent version implies (#2053)
- tests: remove pg_attver lines from PostgreSQL schema dumps (#2056)
- agent: authorize sender commands with X25519 keys (#2054)
- xftp: prevent work directory conflicts of concurrent file transfers (#2062)
- servers: write metrics atomically, log periodic task errors (#2061)
- xftp: limit received files to the size of the sent file (#2067)
- agent: delete contact requests after they are accepted (#2068)
- agent: report skipped messages when an internal message follows them (#2066)
- agent: read work items in one snapshot, report deleted files as NO_FILE (#2060)
- agent: delete contact requests without sending rejection (#2069)
- ci, tests: run all tests in CI, also with the PostgreSQL agent store (#2065)
- xftp: prevent stuck network IO after interrupted transfers on GHC 8.10 (#2070)
- 7.1.0.18 (#2057)
SHA2-256(smp-server-ubuntu-22_04-x86-64)= d4eac837d22e5e1d4e622d54af36ad51a195a259a609163bfae860f634472a01
SHA2-256(xftp-server-ubuntu-22_04-x86-64)= 47e9151d8cbe2ae5815c063fb7fd624f2e115efe2a7a7f9d6287be4d8c5b4aee
SHA2-256(ntf-server-ubuntu-22_04-x86-64)= 96cab1b19cb595e51ead868bded543e462b0f73acb4f79dc2145ccc28f89f3e4
SHA2-256(xftp-ubuntu-22_04-x86-64)= 4d933cdcc4f8ed084ec5bfae76286b7b55484a527b66e6493d65b3d5e33d0b12
SHA2-256(smp-server-postgres-ubuntu-22_04-x86-64)= 2b7af635383a3fa9d32432c2d3b1f4062f6a35f1bfd78b969de9ed78f21916dc
SHA2-256(xftp-server-postgres-ubuntu-22_04-x86-64)= 43c7edc628cee511fb5358f0a3a8ecf57ccfe2580d2367f0b46baebee43c9542
SHA2-256(smp-server-ubuntu-24_04-aarch64)= f0ab77df8cfdb232e0d6da599ee7786797a0732cdd0be047e6b6905a49b42636
SHA2-256(xftp-server-ubuntu-24_04-aarch64)= 851934324691f420e5f4fe5acce2fcfec5a261e681af6423352a16e81e8b8ecc
SHA2-256(ntf-server-ubuntu-24_04-aarch64)= 05d8adf3bb88f3b252458f354f4b0a9b4db2697bdfce4cfad552e116ef131c72
SHA2-256(xftp-ubuntu-24_04-aarch64)= fec2618bbf68f7e88c49ccc49d4219970bd70923902be6a3e9da4b9a09dcf7e9
SHA2-256(smp-server-postgres-ubuntu-24_04-aarch64)= 1569c33ce4bbf74fd731dfb7154e30c3b47d4ac236b6c7139fa7929c7e8e70eb
SHA2-256(xftp-server-postgres-ubuntu-24_04-aarch64)= 1c88f9d8a1ace76eb122824bf2e38c0ceef44692113e8d5bbe1a5356c6c4254a
SHA2-256(smp-server-ubuntu-22_04-aarch64)= 2d4a1e5f5c819ac90bc56d3c7a8325b1e7e62b2ea426fbdcf4ac99643ced1b49
SHA2-256(xftp-server-ubuntu-22_04-aarch64)= 3757c247ac518348e18797a048f9e7f4bdf852694e190cfd7a03a946fb4d482c
SHA2-256(ntf-server-ubuntu-22_04-aarch64)= def42b22c258480e01a5c523d78a335f708aa954e8a3fe4c7057655280813298
SHA2-256(xftp-ubuntu-22_04-aarch64)= 64816000417efd7f195b40cd90b1acbe11cfd9d3b2d5050dcb4042b41fa35f17
SHA2-256(smp-server-postgres-ubuntu-22_04-aarch64)= 0c12ee9ee68ced41ee384839afb3689b26e7a67d6b39f4c117b7455eb7b2755f
SHA2-256(xftp-server-postgres-ubuntu-22_04-aarch64)= df8b43bae651dd5bfabf613c9f9f9f45986e69e4193e1a6e067487a988883501