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
link2xt
3637fe67a7
feat: Hide To header in encrypted messages
2025-11-24 02:33:56 -03:00
link2xt
6077499f07
chore(release): prepare for 2.28.0
2025-11-23 17:08:42 +00:00
link2xt
c9c362d5ff
api: get_existing_msg_ids()
...
This API allows to check if the message with
given ID exists and distinguish between
message not existing and database error.
It might also be faster than
checking messages one by one
if multiple messages need to be checked
because of using a single SQL transaction.
2025-11-22 18:19:44 +00:00
link2xt
e7e31d7914
ci: do not use --encoding option for rst-lint
...
It was removed in rst-lint 2.0:
https://github.com/twolfson/restructuredtext-lint/commit/7b43036b4d2175d2f339a26cf3383d0c512d7add
2025-11-22 05:26:03 +00:00
link2xt
be3e202470
feat: allow adding second transport
2025-11-20 15:51:19 +00:00
link2xt
57aadfbbf6
chore: update preloaded DNS cache
2025-11-19 19:55:53 +00:00
link2xt
849cde9757
refactor: remove some easy to remove unwrap() calls
2025-11-19 17:38:58 +00:00
link2xt
b4cd99fc56
docs: replace some references to Delta Chat with chatmail
2025-11-19 04:11:12 +00:00
link2xt
af574279fd
docs: remove unsupported RFC 3503 ($MDNSent flag) from the list of standards
2025-11-18 21:44:41 +00:00
link2xt
abfb556377
fix: set SQLite busy timeout to 1 minute on iOS
...
Closes <https://github.com/chatmail/core/issues/7464 >
2025-11-18 17:07:27 +00:00
link2xt
72788daca0
refactor: use HashMap::extract_if() stabilized in Rust 1.88.0
2025-11-18 13:16:44 +00:00
link2xt
fb14acb0fb
fix: limit the range of Date to up to 6 days in the past
...
Previous value (1000000 seconds) was slightly more than 11.5 days.
2025-11-17 23:17:55 +00:00
link2xt
a5c470fbae
build(nix): update fenix and use it for all Rust builds
...
`fenix` input provides updated Rust packages.
Updating it is needed since current version is 1.86.0
and MSRV has been increased to 1.88.0.
2025-11-17 15:23:58 +00:00
link2xt
6bdba33d32
build: update rPGP from 0.17.0 to 0.18.0
2025-11-16 15:18:55 +00:00
link2xt
c6ace749e3
build: increase MSRV to 1.88.0
...
It is required by rPGP 0.18.0.
All the changes in `.rs` files are made automatically with `clippy --fix`.
2025-11-16 14:48:50 +00:00
link2xt
22ebd6436f
feat: default bcc_self to 0 for new accounts
2025-11-16 10:00:00 +00:00
link2xt
cdfe436124
chore(release): prepare for 2.27.0
2025-11-16 06:34:11 +00:00
link2xt
e8823fcf35
test: test background_fetch() and stop_background_fetch()
2025-11-16 05:59:20 +00:00
link2xt
0136cfaf6a
test: add pytest fixture for account manager
2025-11-16 05:59:20 +00:00
link2xt
07069c348b
api(deltachat-rpc-client): add APIs for background fetch
2025-11-16 05:59:20 +00:00
link2xt
9d4ad00fc0
build(nix): exclude CONTRIBUTING.md from the source files
2025-11-15 10:56:08 +00:00
link2xt
1c4d2dd78e
api: add APIs to stop background fetch
...
New APIs are JSON-RPC method stop_background_fetch(),
Rust method Accounts.stop_background_fetch()
and C method dc_accounts_stop_background_fetch().
These APIs allow to cancel background fetch early
even before the initially set timeout,
for example on Android when the system calls
`Service.onTimeout()` for a `dataSync` foreground service.
2025-11-14 22:48:19 +00:00
link2xt
cd50c263e8
api!(jsonrpc): rename accounts_background_fetch() into background_fetch()
...
There is no JSON-RPC method to run background_fetch() for a single account,
so no need to have a qualifier saying that it is for all accounts.
2025-11-14 22:48:19 +00:00
link2xt
6611a9fa02
fix: always set bcc_self on backup import/export
...
Regardless of whether chatmail relay is used or not,
bcc_self should be enabled when second device is added.
It should also be enabled again even if the user
has turned it off manually.
2025-11-14 20:00:34 +00:00
link2xt
4b1dff601d
refactor: use wait_for_incoming_msg() in more tests
2025-11-13 00:25:16 +00:00
link2xt
a66808e25a
api(rpc-client): add Account.wait_for_msg()
2025-11-13 00:25:16 +00:00
link2xt
7b54954401
test: port folder-related CFFI tests to JSON-RPC
...
Created new test_folders.py
Moved existing JSON-RPC tests:
- test_reactions_for_a_reordering_move
- test_delete_deltachat_folder
Ported tests:
- test_move_works_on_self_sent
- test_moved_markseen
- test_markseen_message_and_mdn
- test_mvbox_thread_and_trash (renamed to test_mvbox_and_trash)
- test_scan_folders
- test_move_works
- test_move_avoids_loop
- test_immediate_autodelete
- test_trash_multiple_messages
The change also contains fixes for direct_imap fixture
needed to use IMAP IDLE in JSON-RPC tests.
2025-11-12 08:07:40 +00:00
link2xt
d39ed9d0f1
test: fix flaky test_send_receive_locations
2025-11-12 05:50:00 +00:00
link2xt
69a3a31554
chore(release): prepare for 2.26.0
2025-11-11 17:30:19 +00:00
link2xt
1cb0a25e16
fix: do not ignore I/O errors in BlobObject::store_from_base64
2025-11-08 20:06:45 +00:00
link2xt
2e9fd1c25d
test: do not add QR inviter to groups right after scanning the code
...
The inviter may be not part of the group
by the time we scan the QR code.
2025-11-08 03:26:23 +00:00
link2xt
1b1a5f170e
test: Bob has 0 members in the chat until securejoin finishes
2025-11-08 03:26:23 +00:00
link2xt
1946603be6
test: at the end of securejoin Bob has two members in a group chat
2025-11-08 03:26:23 +00:00
link2xt
c43b622c23
test: move test_two_group_securejoins from receive_imf to securejoin module
2025-11-08 03:26:23 +00:00
link2xt
73bf6983b9
fix: do not add QR inviter to groups immediately
...
By the time you scan the QR code,
inviter may not be in the group already.
In this case securejoin protocol will never complete.
If you then join the group in some other way,
this results in you implicitly adding that inviter
to the group.
2025-11-08 03:26:23 +00:00
link2xt
aaa0f8e245
fix: do not return an error from receive_imf if we fail to add a member because we are not in chat
...
This happens when we receive a vg-request-with-auth message
for a chat from which we have been removed already.
2025-11-08 03:26:23 +00:00
link2xt
5a1e0e8824
chore: rustfmt
2025-11-08 03:26:23 +00:00
link2xt
cf5b145ce0
refactor: remove unused imports
2025-11-07 17:31:34 +00:00
link2xt
dd11a0e29a
refactor: replace imap:: calls in migration 73 with SQL queries
2025-11-07 07:12:08 +00:00
link2xt
3d86cb5953
test: remove ThreadPoolExecutor from test_wait_next_messages
2025-11-07 07:09:35 +00:00