link2xt
b432d08aa8
chore(release): prepare for 2.54.0
v2.54.0
2026-07-20 14:57:57 +00:00
Jagoda Estera Ślązak
85db29bdfb
fix: Apply reactions that arrived before the message at later time ( #8415 )
...
A new table `pending_reactions` is now used,
to store reactions that arrived before the referenced message.
When receiving a new message, pending_reactions is checked and any
reactions that arrived earlier are applied.
Fixes : #8367
Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com >
2026-07-20 13:50:05 +00:00
Hocuri
23c216c84b
fix: Update last_rcvd_timestamp in migration ( #8434 )
...
Fix https://github.com/chatmail/core/issues/8429
2026-07-20 15:17:36 +02:00
Hocuri
d34dd40aa0
feat: Automatically remove oldest unpublished relay in order to make space when the user wants to add more; don't allow more than 5 relays overall ( #8428 )
...
Unpublished relays aren't shown in the list of relays anymore, and can't
be deleted manually. Therefore, we want to automatically delete them in
order to make space for more relays when the limit (5) is reached and
the user wants to add another relay.
2026-07-20 15:11:13 +02:00
link2xt
ebd1c20997
fix: do not log errors if full message is not available on any transport
...
Before this change "Err" case spams the logs with
"Failed to download message rfc724_mid=...: IMAP location for ... post-message is unknown."
logged by every transports when the message is not available on any transport.
2026-07-20 09:50:27 +00:00
Jagoda Estera Ślązak
0c40b52ec8
fix: Un-escape message footer marks in full messages (get_html) ( #8427 )
...
Un-escapes footer marks in long plain-text messages when retrieved with
`get_message_html`/`dc_get_msg_html`.
Additionally, makes escaping stricter,
only matching lines starting with `-- ` instead of `--`.
Fixes : #8269
Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com >
2026-07-20 09:44:14 +02:00
link2xt
aadd11a771
feat(imap): use CAPABILITY response code if LOGIN command returns it
...
This saves one round trip during connection establishment
if the server returns capabilities in the LOGIN command response already.
2026-07-17 21:36:45 +00:00
link2xt
17b32a17f5
chore: update async-imap to 0.11.3
2026-07-17 21:36:45 +00:00
link2xt
355ab8b3bc
ci: update Rust to 1.97.1
2026-07-17 13:49:35 +00:00
iequidoo
e2b67d20fb
refactor: Remove GROUP BY c.id from chatlist queries
...
Not clear why `GROUP BY` was needed -- a chat can't appear in the selected rows multiple times
because we do JOIN on the last message in the chat, there can't be multiple last messages.
2026-07-16 20:03:49 -03:00
iequidoo
0560c13ae5
perf: Add timestamp to msgs_index7 and speed up Chatlist::try_load() ( #7848 )
...
This speeds up chatlisting by 3--4 times on my biggest profile, so the difference is visually
noticeable, particularly after dropping disk caches. Before, `msgs_index2` was used which has less
ordering and requires a full scan of `msgs` table.
2026-07-16 20:03:49 -03:00
link2xt
1a24bf612a
refactor: label the loop iterating over the candidates
...
The loop is large, so having an explicit label
makes it easier to understand what the "continue" statement does.
2026-07-16 09:49:41 +00:00
link2xt
492741ac60
fix(imap): do not bubble up errors in IMAP candidate loop
...
Network errors such as timeouts should not break out of the loop
by bubbling up errors. There may be more candidates to try,
breaking out of the loop skips trying them.
2026-07-16 09:49:41 +00:00
link2xt
d940f96a5c
feat: limit the number of published relays instead of all relays
2026-07-15 17:24:58 +00:00
link2xt
e5c920f1a1
api(deltachat-rpc-client): add Account.set_transport_unpublished()
2026-07-15 17:24:58 +00:00
Jagoda Estera Ślązak
5d0e5efc94
feat: Remove hidden relays automatically ( #8402 )
...
Automatically remove relays that are hidden (`is_published=0`) and
haven't been used to receive new messages for over 90 days.
Closes : #8384
Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com >
2026-07-15 12:31:11 +00:00
dependabot[bot]
94fc4f7550
chore(deps): bump taiki-e/install-action from 2.82.6 to 2.82.10
...
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action ) from 2.82.6 to 2.82.10.
- [Release notes](https://github.com/taiki-e/install-action/releases )
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md )
- [Commits](9bcaee1dca...50414676f9 )
---
updated-dependencies:
- dependency-name: taiki-e/install-action
dependency-version: 2.82.9
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-14 13:13:43 +00:00
link2xt
ce2d237ffd
refactor: remove unnecessary reference in format string
2026-07-14 11:14:36 +00:00
link2xt
f2d11305bd
chore: update yanked spin@0.9.8 and spin@0.10.0
...
Upstream issue with the reason for yanking the crate is <https://codeberg.org/zesterer/spin/issues/192 >
2026-07-14 11:14:10 +00:00
link2xt
5adf7454ea
ci: update Rust to 1.97.0
2026-07-12 13:10:21 +00:00
link2xt
079fb352e3
refactor: remove set_modseq() function
...
This is a follow-up to 8f51c7b9d5
which removed sync_seen_flags().
MODSEQ is a message attribute related to
CONDSTORE IMAP extension and is not used anymore
since CONDSTORE is not used.
2026-07-12 06:16:01 +00:00
Hocuri
823b0741df
docs: Update STYLE.md: macros should be used only when necessary ( #8410 )
2026-07-10 10:52:33 +02:00
Hocuri
6322758482
api!: list_transports() doesn't return unpublished relays anymore
...
BREAKING CHANGE: UIs should use `list_transports()` rather than `list_transports_ex()`, because unpublished transports count as removed from the user point of view, and should not be shown in the relay list anymore.
2026-07-09 15:24:53 +02:00
Hocuri
90ac058043
api!: delete_transport() must not be used by UIs anymore. Instead, set_transport_unpublished() must be called when a user clicks on "Remove"
...
I marked this as a breaking change so that it visibly appears in the changelog.
2026-07-09 15:24:53 +02:00
dependabot[bot]
212aaaad77
chore(deps): bump taiki-e/install-action from 2.81.11 to 2.82.6
...
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action ) from 2.81.11 to 2.82.6.
- [Release notes](https://github.com/taiki-e/install-action/releases )
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md )
- [Commits](15449e3094...9bcaee1dca )
---
updated-dependencies:
- dependency-name: taiki-e/install-action
dependency-version: 2.82.6
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-08 22:07:06 +00:00
link2xt
31b2d7961a
fix: ensure public key signatures are not in the past compared to the public key
...
We use the timestamp of the latest transport modification
as the timestamp of the Direct Key Signature.
However, first transport is created before the public key
and existing transports may even have zero timestamp
if they were created before migration 142.
For interoperability with Sequoia-PGP,
make sure signatures always have a timestamp
that is not in the past compared to the timestamp
of the primary key.
2026-07-08 17:41:45 +00:00
missytake
2b6515e3b5
ci: rrsync prepends the restricted upload path, we need to leave it out ( #8405 )
...
This is necessary because
https://github.com/deltachat/sysadmin/issues/270 switches our
server-side authentication to rrsync, and that uploads to a restricted
path already; keeping it like this will result in a destination path
like `/var/www/html/var/www/html`.
Co-authored-by: j4n <j4n@systemli.org >
2026-07-08 17:30:11 +02:00
Jagoda Estera Ślązak
cac8c06c78
fix: RUSTSEC-2026-0204 ( #8403 )
...
https://github.com/crossbeam-rs/crossbeam/pull/1276
Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com >
2026-07-07 17:13:25 +02:00
dependabot[bot]
446cdabd21
chore(cargo): bump smallvec from 1.15.1 to 1.15.2
...
Bumps [smallvec](https://github.com/servo/rust-smallvec ) from 1.15.1 to 1.15.2.
- [Release notes](https://github.com/servo/rust-smallvec/releases )
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.15.1...v1.15.2 )
---
updated-dependencies:
- dependency-name: smallvec
dependency-version: 1.15.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-04 15:12:57 +00:00
iequidoo
d9ab7a7a43
test: securejoin: Check that "vc-{,request-}pubkey" messages don't contain displayname
...
These messages are AUTH-encrypted and shalln't contain profile data as per the SecureJoin v3 spec,
otherwise the profile data can be seen e.g. by other broadcast subscribers.
2026-07-03 22:42:01 -03:00
dependabot[bot]
e5d56a3b70
chore(cargo): bump brotli from 8.0.2 to 8.0.4
...
Bumps [brotli](https://github.com/dropbox/rust-brotli ) from 8.0.2 to 8.0.4.
- [Release notes](https://github.com/dropbox/rust-brotli/releases )
- [Commits](https://github.com/dropbox/rust-brotli/compare/8.0.2...8.0.4 )
---
updated-dependencies:
- dependency-name: brotli
dependency-version: 8.0.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-04 01:21:00 +00:00
link2xt
ee1095be9d
chore: update quick-xml to 0.41.0
...
Fixes cargo-deny complaining about https://rustsec.org/advisories/RUSTSEC-2026-0194
2026-07-03 16:21:02 +00:00
dependabot[bot]
520ede1fa5
chore(cargo): bump chrono from 0.4.44 to 0.4.45
...
Bumps [chrono](https://github.com/chronotope/chrono ) from 0.4.44 to 0.4.45.
- [Release notes](https://github.com/chronotope/chrono/releases )
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md )
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.44...v0.4.45 )
---
updated-dependencies:
- dependency-name: chrono
dependency-version: 0.4.45
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 11:53:04 +00:00
link2xt
89a1f55a87
feat: increase max idle timeout for backup receiver to 60 seconds
...
Default is 30 seconds according to
<https://docs.rs/iroh/0.35.0/iroh/endpoint/struct.TransportConfig.html#method.max_idle_timeout >
2026-07-02 05:00:38 +00:00
dependabot[bot]
90e6fa055f
chore(deps): bump zizmorcore/zizmor-action from 0.5.6 to 0.5.7
...
Bumps [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action ) from 0.5.6 to 0.5.7.
- [Release notes](https://github.com/zizmorcore/zizmor-action/releases )
- [Commits](5f14fd08f7...192e21d79a )
---
updated-dependencies:
- dependency-name: zizmorcore/zizmor-action
dependency-version: 0.5.7
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 04:55:32 +00:00
dependabot[bot]
093ebe537f
chore(cargo): bump hyper from 1.9.0 to 1.10.1
...
Bumps [hyper](https://github.com/hyperium/hyper ) from 1.9.0 to 1.10.1.
- [Release notes](https://github.com/hyperium/hyper/releases )
- [Changelog](https://github.com/hyperium/hyper/blob/master/CHANGELOG.md )
- [Commits](https://github.com/hyperium/hyper/compare/v1.9.0...v1.10.1 )
---
updated-dependencies:
- dependency-name: hyper
dependency-version: 1.10.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 04:54:50 +00:00
dependabot[bot]
fa91b168a9
chore(cargo): bump log from 0.4.31 to 0.4.33
...
Bumps [log](https://github.com/rust-lang/log ) from 0.4.31 to 0.4.33.
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.31...0.4.33 )
---
updated-dependencies:
- dependency-name: log
dependency-version: 0.4.33
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 04:54:27 +00:00
dependabot[bot]
8c12804257
chore(cargo): bump regex from 1.12.3 to 1.12.4
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.12.3 to 1.12.4.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.12.3...1.12.4 )
---
updated-dependencies:
- dependency-name: regex
dependency-version: 1.12.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 04:54:06 +00:00
dependabot[bot]
5beef1a2d0
chore(cargo): bump bytes from 1.11.1 to 1.12.0
...
Bumps [bytes](https://github.com/tokio-rs/bytes ) from 1.11.1 to 1.12.0.
- [Release notes](https://github.com/tokio-rs/bytes/releases )
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md )
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.11.1...v1.12.0 )
---
updated-dependencies:
- dependency-name: bytes
dependency-version: 1.12.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 04:53:40 +00:00
dependabot[bot]
cc08d5de81
chore(cargo): bump quote from 1.0.45 to 1.0.46
...
Bumps [quote](https://github.com/dtolnay/quote ) from 1.0.45 to 1.0.46.
- [Release notes](https://github.com/dtolnay/quote/releases )
- [Commits](https://github.com/dtolnay/quote/compare/1.0.45...1.0.46 )
---
updated-dependencies:
- dependency-name: quote
dependency-version: 1.0.46
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 04:53:21 +00:00
dependabot[bot]
ba1063ad0f
chore(cargo): bump syn from 2.0.117 to 2.0.118
...
Bumps [syn](https://github.com/dtolnay/syn ) from 2.0.117 to 2.0.118.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/2.0.117...2.0.118 )
---
updated-dependencies:
- dependency-name: syn
dependency-version: 2.0.118
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 04:53:00 +00:00
link2xt
30bdcd6809
fix: do not put locations into pre-messages
2026-07-01 12:02:53 +00:00
link2xt
5eb5d22d7b
fix: replace last_added_location_id with last_added_location_timestamp
...
Stored location ID was not actually used
and locations_last_sent timestamp was updated
with the current time, possibly skipping
locations.
2026-07-01 12:02:53 +00:00
dependabot[bot]
a22ba021e5
chore(deps): bump actions/checkout from 6 to 7
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-01 11:49:38 +00:00
iequidoo
6e633eebe1
chore(deps): bump anyhow to 1.0.103
2026-06-29 19:08:41 -03:00
link2xt
a14e617059
feat: remove ?emailaddress argument from autoconfig URL that is not using a dedicated domain
...
This brings the implementation closer to the specification <https://datatracker.ietf.org/doc/draft-ietf-mailmaint-autoconfig/06/ >
as it is confirmed that `?emailaddress` should not be included.
2026-06-29 18:07:17 +00:00
iequidoo
b4471f2434
feat: Remove trailing '.' from device message about receive_imf failure
...
This is to avoid from the Android UI treating it as a part of URL.
2026-06-29 14:33:52 -03:00
iequidoo
abaa48d0a1
fix: Return early from receive_imf to not tombstone Iroh-Node-Addr message if webxdc instance isn't found ( #8372 )
...
An Iroh-Node-Addr message (realtime advertisement) may arrive earlier than the referenced webxdc in
case of multi-transport. By not creating a tombstone we still can receive it later on another
transport.
2026-06-29 14:33:52 -03:00
link2xt
1b2ec2e88c
chore: update astral-tokio-tar from 0.6.2 to 0.6.3
2026-06-27 06:04:18 +00:00
Hocuri
f6e819d2a5
refactor: improve comment ( #8366 )
...
It's unclear whether this logic works, but I think we should at least
properly document why it exists (I already sent this text while figuring
out what the code does, so it was easy making this PR now)
Could add a XXX note that it's unsure whether this works
2026-06-25 17:06:22 +00:00