link2xt
2131f5e9c0
fix: assign iroh gossip topic to pre-message when post-message is received
...
Iroh-Gossip-Topic is sent in a post-message. Post-message goes to trash,
so topic should be associated with the existing pre-message that is
updated rather than with the post-message.
2026-02-17 02:54:39 +00:00
link2xt
de25eb90ff
chore(cargo): update keccak from 0.1.5 to 0.1.6
...
0.1.5 is yanked and cargo-deny complains
2026-02-14 07:20:42 +00:00
link2xt
c475882727
perf: use recv_direct() instead of recv() on the event channel
...
The difference between recv_direct()[1] and recv()[2]
is that recv() allocates memory for the future on the heap.
Using recv_direct() removes one pointer indirection.
[1] https://docs.rs/async-broadcast/0.7.2/async_broadcast/struct.Receiver.html#method.recv_direct
[2] https://docs.rs/async-broadcast/0.7.2/async_broadcast/struct.Receiver.html#method.recv
2026-02-10 01:32:40 +00:00
link2xt
166e259b18
chore: update fast-socks5 to version 1.0
2026-02-10 01:32:34 +00:00
link2xt
cc38298163
refactor: enable clippy::manual_is_variant_and
2026-02-10 01:32:18 +00:00
link2xt
983f43c33c
chore(release): prepare for 2.42.0
2026-02-10 00:37:13 +00:00
link2xt
e78b509d0a
chore: update rPGP from 0.18.0 to 0.19.0
2026-02-08 21:09:38 +00:00
link2xt
583979c6fc
fix: set mvbox_move to '0' explicitly for existing chatmail profiles
...
Otherwise if the user for some reason has no `mvbox_move` config set,
they get a device message about `mvbox_move` deprecation.
2026-02-08 01:58:23 +00:00
link2xt
5bfd8dd517
feat: do not scan not watched folders
2026-02-08 01:57:10 +00:00
link2xt
32b0ca81f8
test: remove test_dont_show_emails
...
Existing test relies on folder scanning.
We are going to remove the option to not show emails
(<https://github.com/chatmail/core/issues/7631 >)
so the test will be removed eventually anyway.
2026-02-08 01:57:10 +00:00
link2xt
5bb0b86f6a
chore(release): prepare for 2.41.0
2026-02-06 00:39:03 +00:00
link2xt
396104af47
feat: do not require ShowEmails to be set to All for adding second relay
2026-02-05 19:12:08 +00:00
link2xt
b72a677f4c
chore(release): prepare for 2.40.0
2026-02-04 21:46:02 +00:00
link2xt
00e78eecf6
feat: add device message about legacy mvbox_move
2026-02-04 21:51:56 +01:00
link2xt
8b0621b724
test: set mvbox_move to 0 for test rust accounts
2026-02-04 21:51:56 +01:00
link2xt
3d409c37a1
chore: remove RUSTSEC-2026-0002 exception from deny.toml
...
It is an "unsound" advisory for a transitive dependency
and cargo-deny does not report them by default
since cargo-deny 0.19.0.
2026-02-03 21:25:41 +00:00
link2xt
633536bb13
fix: remove Config::DeleteToTrash and Config::ConfiguredTrashFolder
...
`delete_to_trash` is an option that was added for Gmail
as Gmail archives the messages by default
when they are deleted over IMAP:
<https://github.com/chatmail/core/issues/3957 >
(implemented in <https://github.com/chatmail/core/pull/3972 >).
Closes <https://github.com/chatmail/core/issues/6444 >.
2026-02-03 18:31:55 +00:00
link2xt
94ee485155
chore: update provider database
2026-02-03 18:31:55 +00:00
link2xt
ec0dc8bcad
refactor: mark ProviderOptions as non_exhaustive
...
This prevents triggering clippy lint `needless_update`.
2026-02-03 18:31:55 +00:00
link2xt
378fb09c80
ci: make scripts/deny.sh test the locked version of dependencies
2026-02-03 17:25:42 +00:00
link2xt
ff2fbebff0
chore(cargo): update bytes from 1.11.0 to 1.11.1
...
Fixes <https://rustsec.org/advisories/RUSTSEC-2026-0007 >
2026-02-03 17:25:42 +00:00
link2xt
3b29469102
feat: do not load more than one own key
2026-01-30 09:48:38 +00:00
link2xt
6325a35b5b
test: make test_dont_move_sync_msgs less flaky
2026-01-30 02:08:49 +00:00
link2xt
4fc0d0f53d
refactor: remove unused Context.is_inbox()
2026-01-28 17:19:21 +00:00
link2xt
1bf24618fa
feat: never create IMAP folders
...
Existing setups already have the folders created
and for new setups only INBOX should be used.
2026-01-28 14:55:51 +00:00
link2xt
3f98e45c29
chore: update provider database
2026-01-27 23:39:16 +00:00
link2xt
26ddcfaaed
feat: do not collect email addresses from messages after configuration
...
This can only result in adding unencrypted email-contacts
and we do not want to encourage creating unencrypted chats.
2026-01-27 17:49:16 +00:00
link2xt
baeb31b5fa
chore(release): prepare for 2.39.0
2026-01-23 21:52:40 +00:00
link2xt
5d3bc00fd5
docs(RELEASE.md): add section about dealing with failed releases
2026-01-23 21:43:02 +00:00
link2xt
424928b660
docs(RELEASE.md): push preparation commit to the main branch before tagging
2026-01-23 21:43:02 +00:00
link2xt
9003b248aa
chore: merge v2.38.0 into main branch
...
Release preparation commit was not pushed to main.
2026-01-23 09:09:59 +00:00
link2xt
35875f9b32
ci: update Rust to 1.93.0
2026-01-23 09:03:11 +00:00
link2xt
5ff323ce15
feat(pgp): use preferred hash algorithm for signing instead of hardcoded SHA256
...
There is no difference for RSA and Ed25519,
the only signing keys that we generate.
The both use SHA256:
<https://github.com/rpgp/rpgp/blob/7e3b6c0af21e4a45c2a2dcba67f0b649e0b6e456/src/types/params/public.rs#L231-L234 >
The only difference is for the possible future PQC signing keys
and imported NIST P-512 and NIST P-384 keys.
2026-01-18 03:59:12 +00:00
link2xt
659d21aa9d
docs: fix formatting of indoc! link
2026-01-17 14:40:17 +00:00
link2xt
8f604e74ec
fix: do not resolve ICE server hostnames during IMAP loop
...
Hostname resolution may timeout if DNS servers are not responding.
It is also not necessary to resolve fallback ICE server hostnames
if the user is not going to use calls.
2026-01-17 12:55:21 +00:00
link2xt
13dafa46b5
fix: take transport_id into account when marking messages with \Seen flags
...
Otherwise wrong IMAP client corresponding to a different transport
may pick up the job to mark the message as seen there,
and fail to do it as the message does not exist.
It may also mark the wrong message with the correct folder
and UID, but wrong IMAP server.
2026-01-09 18:40:46 +00:00
link2xt
46bbe5f077
chore(release): prepare for 2.37.0
2026-01-08 20:45:33 +00:00
link2xt
7e811469b3
api: add who_can_call_me config option
2026-01-07 22:00:54 +00:00
link2xt
cdacad235e
chore: update lru 0.12.3 to 0.12.5 and add RUSTSEC-2026-0002 exception
...
Closes https://github.com/chatmail/core/issues/7692
2026-01-07 20:18:32 +00:00
link2xt
c766397abc
test: regression test for vc-request encrypted by the server
2026-01-07 15:47:16 +00:00
link2xt
14a59afd5d
fix: do not rely on Secure-Join header to detect {vc,vg}-request
2026-01-07 15:47:16 +00:00
link2xt
8d6f4b0354
chore(release): prepare for 2.36.0
2026-01-03 18:39:16 +00:00
link2xt
284469363e
docs: remove references to sentbox_watch config
...
This config was already removed in 2.23.0.
2026-01-03 13:40:24 +00:00
link2xt
0d2f2b3266
refactor(ffi): remove one pointer indirection for dc_accounts_t
...
Arc can be converted directly to raw pointers,
so there is no need to create a pointer to Arc
using a Box.
2026-01-01 15:34:55 +00:00
link2xt
25750de4e1
feat: send sync messages over SMTP and do not move them to mvbox
2025-12-26 10:58:33 +00:00
link2xt
a89ce8ce7a
docs: update documentation for TransportsModified event
...
It is a follow-up to https://github.com/chatmail/core/pull/7643
Event is not emitted when the transports are modified on this device
and we should consistently say that this event is not only for testing.
2025-12-25 11:16:36 +00:00
link2xt
184736723f
fix: reset options not available for chatmail on chatmail profiles
2025-12-24 03:23:23 +00:00
link2xt
fd90493766
feat: add core version to receive_imf failure message
2025-12-18 14:44:49 +00:00
link2xt
b1883c802b
refactor: turn DC_VERSION_STR into &str
2025-12-18 14:44:49 +00:00
link2xt
71ee32b8b7
ci: pin GitHub Action references
...
Makes `zizmor` happy.
2025-12-18 14:43:27 +00:00
link2xt
ddd4fc49a2
chore(release): prepare for 2.35.0
2025-12-16 22:22:20 +00:00
link2xt
7d5bedde4d
fix: take transport_id into account when using imap table
2025-12-16 22:08:33 +00:00
link2xt
7ba4a43253
feat: add transport addresses to IMAP URLs in message info
2025-12-16 16:49:49 +00:00
link2xt
d87d87f467
fix: do not set normalized name for existing chats and contacts in a migration
...
We got a report that application is not responding after update
on Android and getting killed before it can start,
suspected to be a slow SQL migration:
<https://github.com/chatmail/core/issues/7602 >
This change removes calculation of normalized names for
existing chats and contacts added in
<https://github.com/chatmail/core/pull/7548 >
to exclude the possibility of this migration being slow.
New chats and contacts will still get normalized names
and all chats and contacts will get it when they are renamed.
2025-12-12 15:44:51 +00:00
link2xt
121bfd1fa8
ci: update Rust to 1.92.0
2025-12-11 21:23:53 +00:00
link2xt
9e2a4325e9
chore: apply Rust 1.92.0 clippy suggestions
2025-12-11 21:23:53 +00:00
link2xt
4509c1bd06
chore: prepare 2.34.0 release
2025-12-11 16:28:55 +00:00
link2xt
99775458c4
test: test setting up second device between core versions
2025-12-10 22:51:17 +00:00
link2xt
58cd133b5c
fix: synchronize primary transport immediately after changing it
2025-12-09 21:43:26 +00:00
link2xt
5902fe2cbe
refactor: remove EncryptHelper.prefer_encrypt
...
It always had the same value of EncryptPreference::Mutual
2025-12-07 15:33:36 +00:00
link2xt
73e0f81e83
test: port test_synchronize_member_list_on_group_rejoin to JSON-RPC
2025-12-07 14:21:48 +00:00
link2xt
cbe842735e
api(rpc-client): add Chat.num_contacts()
2025-12-07 14:21:48 +00:00
link2xt
72bc9f0ae4
api(rpc-client): accept Account for Chat.{add,remove}_contact()
2025-12-07 14:21:48 +00:00
link2xt
0defa117a0
refactor: use u16 instead of usize to represent progress bar
2025-12-07 13:23:31 +00:00
link2xt
3821cfab0c
fix: use u64 to count the number of bytes sent/received over the network
...
It is possible to send more than 4 GiB into network stream
or receive more than 4 GiB from it, in which case
this counter may overflow.
2025-12-07 13:23:31 +00:00
link2xt
09f159991e
fix: use u64 to represent the number of bytes in backup files
2025-12-07 13:23:31 +00:00
link2xt
014d2ace76
fix: use u64 instead of usize to calculate storage usage
...
On 32-bit systems such as old Android phones usize is 32-bit as well
and cannot store sizes that exceed 4 GiB.
2025-12-06 13:01:46 +00:00
link2xt
646728372b
chore: add RUSTSEC-2025-0134 exception to deny.toml
2025-12-06 12:56:16 +00:00
link2xt
7c30aef2ed
chore(release): prepare for 2.33.0
2025-12-05 21:35:21 +00:00
link2xt
c38d02728e
fix: recognize all transport addresses as own addresses
...
Fix get_secondary_addrs() which was using
`secondary_addrs` config that is not updated anymore.
Instead of using `secondary_addrs` config,
use the `transports` table which contains all the addresses.
2025-12-05 21:15:30 +00:00
link2xt
aa5ee19340
chore(release): prepare for 2.32.0
2025-12-04 21:00:59 +00:00
link2xt
952f6735a2
chore(release): prepare for 2.31.0
2025-12-04 19:28:31 +00:00
link2xt
a50aa3b6e9
ci: update npm before publishing packages
...
Newer npm is apparently needed for "trusted publishing".
2025-12-04 19:26:25 +00:00
link2xt
23d95df66a
feat: use v2 SEIPD when sending messages to self
2025-12-04 18:25:30 +00:00
link2xt
6db2cf6144
chore(release): prepare for 2.30.0
2025-12-04 17:01:28 +00:00
link2xt
47c1e54219
ci: use "trusted publishing" for NPM packages
...
See the documentation at <https://docs.npmjs.com/trusted-publishers >.
I have removed the token that was used since <https://github.com/chatmail/core/pull/5575 >,
created two new GitHub deployment environments and configured
trusted publishing for two packages (see the environment URLs) on https://www.npmjs.com/
2025-12-04 15:40:28 +00:00
link2xt
f7ae2abe52
feat: synchronize transports via sync messages
2025-12-04 14:40:36 +00:00
link2xt
3a7f82c66e
api: add TransportsModified event
2025-12-04 14:40:36 +00:00
link2xt
12cee23924
chore(release): prepare for 2.29.0
2025-12-01 02:07:21 +00:00
link2xt
5fb118e5a3
refactor: make signing key non-optional for pk_encrypt
2025-12-01 01:16:01 +00:00
link2xt
1ec3f45dc1
refactor: use SYMMETRIC_KEY_ALGORITHM constant in symm_encrypt_message()
2025-12-01 01:16:01 +00:00
link2xt
e4e19b57b3
ci: build Python wheels in separate jobs
2025-11-30 02:59:17 +00:00
link2xt
2efb128fec
ci: do not build fake RPC server source packages
...
The source packages were needed for Android
to repack compatible Linux wheels,
but now Android is officially supported.
2025-11-30 02:59:17 +00:00
link2xt
4a5d5bdeb1
ci: do not install Python manually to bulid RPC server wheels
...
Python preinstalled in runners should be up to date by now.
2025-11-30 02:59:17 +00:00
link2xt
cde4a61be7
ci: fix a typo in deltachat-rpc-server publishing workflow
2025-11-30 02:59:17 +00:00
link2xt
dc5f939ac6
feat!: increase backup version from 3 to 4
...
Migration 140 merged in version 2.28.0
introduced `NOT NULL` transport_id
columns, so old versions of core not aware of it
fail e.g. when they expect conflict on `(folder)`
column rather than `(transport_id, folder)`.
2025-11-29 17:24:08 +00:00
link2xt
343dca87f7
fix: do not use deprecated ConfiguredProvider in get_configured_provider
2025-11-29 00:17:26 +00:00
link2xt
4d06f5a8ae
fix: upload sync messages only with the primary transport
...
Currently there is a race between transports
to upload sync messages and delete them from `imap_send` table.
Sometimes mulitple transports upload the same message
and sometimes only some of them "win".
With this change only the primary transport
will upload the sync message.
2025-11-29 00:17:26 +00:00
link2xt
a4bec7dc70
refactor: remove update_icons and disable_server_delete migrations
2025-11-29 00:17:26 +00:00
link2xt
1f32c5ab40
refactor: use ConfiguredProvider config directly when loading legacy settings
2025-11-29 00:17:26 +00:00
link2xt
43e8d5cc6c
ci: unpin mypy
2025-11-29 00:16:58 +00:00
link2xt
7e4547582e
fix: do not configure folders during transport configuration
...
We do not have transport ID assigned until configuration finishes,
so we cannot save UID validitiy for folders and write
into any tables that have transport_id column yet.
2025-11-29 00:05:29 +00:00
link2xt
721b9cebef
build: pin mypy to 1.18.2
...
mypy depends on librt since 1.19.0
and it fails to build with PyPy 3.10.
2025-11-28 22:14:38 +00:00
link2xt
0d50d8703f
build: use SPDX license expression in Python package metadata
...
License classifiers are replaced with `license`.
This is supported since `setuptools` v77.0.0:
<https://setuptools.pypa.io/en/stable/history.html#v77-0-0 >
Without this change we get
`SetuptoolsDeprecationWarning: License classifiers are deprecated.`
with a reference to
<https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license >
2025-11-28 22:14:38 +00:00
link2xt
9aba299c75
build: increase minimum supported Python version to 3.10
...
Python 3.9 is not supported since 2025-10-31:
https://devguide.python.org/versions/
mypy just dropped support for Python 3.9:
<https://github.com/python/mypy/commit/1a6ff5904995c1d4c2ce0f0eab296475788fddf0 >
2025-11-28 22:14:38 +00:00
link2xt
7bf7ec3d32
api(deltachat-rpc-client): add Message.exists()
2025-11-28 00:30:36 +00:00
link2xt
8a7498a9a8
fix: handle the case when account does not exist in get_existing_msg_ids()
...
If account is removed, this means the messages are removed as well.
We do not reuse account IDs, so the account will not reappear.
2025-11-28 00:30:36 +00:00
link2xt
38a547dfda
build: make scripts for remote testing usable
...
This updates `scripts/remote_tests_{rust,python}.sh`.
The scripts were previously used to run tests
from CI on remote faster machine,
but they are still usable to run tests remotely
e.g. from a laptop that is on battery.
2025-11-26 17:12:25 +00:00
link2xt
7c998af973
ci: set timeout-minutes for all jobs in ci.yaml workflow
...
Default is 360 minutes, that is 6 hours.
If the job is running for more than 1 hour,
it is surely stuck, no need to keep running it.
2025-11-26 17:06:20 +00:00
link2xt
6b6ec2a4b7
fix: use the same webxdc ratelimit for all email servers
...
This removes another distinction between chatmail and non-chatmail
and fixes flaky tests/test_webxdc.py::test_webxdc
Closes <https://github.com/chatmail/core/issues/7522 >
2025-11-26 00:47:43 +00:00