Releases: lrhodin/corten-matrix
Release list
(fix) Messages failing to send - edge case
Fixed messages silently disappearing in chats that had fallen back to SMS; they now send over iMessage when possible, and show as failed when they can't be delivered at all. Thanks for the logs @Bijan-A.
Full Changelog: 1.0.9...1.1.0
(fix) Long Messages
Long iMessages that previously vanished — and could permanently stall a chat's backfill — are now split across multiple Matrix messages with no text lost.
Full Changelog: 1.0.8...1.0.9
Fixes
Fix edgecase statuskit related crash. Thanks to @rushinburrito for your help. Fixed corten-matrix reset command.
Full Changelog: 1.0.7...1.0.8
Add rustpush patch
Full Changelog: 1.0.6...1.0.7
(fix) self chat not showing presence
Fix statkit issue with self chat
What's Changed
- Batch contact send-target IDS validation for alternate handles by @lwittwer in #66
- merge beta to master by @mackid1993 in #67
Full Changelog: 1.0.3...1.0.6
bugfixes
Logging fixes for Linux, attempt to fix random transient disconnect issue. Thanks @Bijan-A. Thanks for the contribution @lwittwer.
Full Changelog: 0.0.0...1.0.5
Minor Fixes
Fix contact photos (prefer phone number when email exists) again.
Full Changelog: 0.0.0...1.0.4
Built in Update Command
New feature for prebuilt binaries corten-matrix update.
It pulls the latest release for your platform (macOS universal, Linux amd64, or Linux arm64), replaces the installed binary in place, prints the release notes, and restarts the bridge. Your config, login, and data are untouched.
corten-matrix update # update & restart
corten-matrix update check # show what's available + release notes, change nothing
corten-matrix update force # re-download & reinstall the current release
The service must be installed first. update doesn't take a path or guess where your binary lives — it locates it through the corten-matrix entry on your PATH. That entry is a symlink into /usr/local/bin that corten-matrix setup (and install-service) creates, pointing at wherever you actually keep the binary; update follows the symlink to that real file and replaces it in place, leaving the symlink intact. So you must have run setup / install-service (and added it to PATH when prompted) before update will work. If corten-matrix isn't on your PATH, update stops and tells you to install the service first rather than guessing. (If the binary lives somewhere only root can write, it uses sudo for the swap.)
Full Changelog: 1.0.2...1.0.3
BETA: Minor Fixes
Thank you @kgr17 for helping test. Just a few a minor fixes related to systemd.
Full Changelog: 1.0.1...1.0.2
BETA: Second iMessage Account / Fixes
Highlights
- Run a second iMessage account on one machine, under a single service.
- SMS/RCS/MMS group chats no longer split across rooms or mis-route replies.
- Fixed a bridge hang during auto-reconnect.
Added
Dual iMessage accounts (two Apple IDs)
Bridge two Apple IDs on the same machine (max two), each as its own fully
isolated bridge — separate iMessage login/session, data directory, config, and
Matrix appservice — all running under a single background service.
- Add or reconfigure any time with one command:
corten-matrix setup 1
(self-hosted) orcorten-matrix setup-beeper 1(Beeper). No mid-setup prompts. - One service runs both bridges, so
start/stop/restart/statusact
on both at once.corten-matrix logs 1tails the second account. - macOS note: at most one account can use local chat.db history backfill
(the Apple ID signed into Messages); the other uses CloudKit. This only
affects history backfill — real-time messaging works for both accounts
regardless. (Linux always uses CloudKit.)
Fixed
SMS/RCS/MMS group chats no longer split or mis-route (#60, fixes #58)
- One room per group. Carrier group chats have no stable Apple group ID —
iCloud reports the same group under several different encodings, which
previously sharded one conversation across many Matrix rooms (one case
collapsed from 10 rooms down to 1). Carrier groups are now keyed by their
participant set on both the live and history-backfill paths, so they converge
on a single room. - Replies land in the group, from the right person. A reply in a 3-person
carrier group could be misread as a 1:1 and delivered into a DM with the wrong
contact. Group detection now counts the real members, so replies stay in the
group with the correct sender. - Automatic cleanup of existing duplicates. On startup the bridge
consolidates groups already split under the old scheme — merging the rooms and
re-backfilling history (deduplicated, so nothing is lost). Room moves are
rate-limited per launch to keep startup responsive, finishing over later
restarts if there's a large backlog. - Correct send service. Carrier groups now reliably send over SMS/RCS/MMS
instead of occasionally falling back to iMessage — including RCS/MMS groups and
after a group's membership changes.
iMessage groups and 1:1 DMs are unaffected.
Bridge no longer hangs on auto-reconnect (#63, relates to #56)
After a prolonged receive-wedge, the auto-reconnect could hang indefinitely
(logging "Client disconnection taking long" every 2 seconds until a manual
restart). Disconnect now tears down the APNs connection before stopping the
client and bounds the stop with a timeout, so reconnect always completes.
Internal
- Added unit tests covering carrier-group key convergence, duplicate
consolidation, and room-move selection.
Contributors
Thanks to @needo37 (#60) and @Bijan-A (#63), and to @kgr17 for testing the
second-account support.