v27.0
mautrix-teams 27.0 aligns versioning with the underlying mautrix-go release
line; future patch releases will track it as 27.0.x. The release fixes the
meeting/group/channel naming gap, breaks a tight Trouter reconnect loop, and
stops the bridge re-inviting you to portals you have manually left.
Fixed
- Group, channel and meeting portals now pick up their Teams topic. The
per-thread/v1/threads/<id>API returns thread metadata under the
top-levelpropertieskey, while/conversations(used at startup)
usesthreadProperties; we now read either, and fall back to the
calendar subject parsed fromproperties.meetingJSON for meeting
threads where neither topic is set. - Trouter
/v4/aregistration now refreshes the skype token on a 401 and
retries once. Without this the bridge would enter a 5-second reconnect
loop after Microsoft rotated the websocket and the cached skype token
expired in the gap, hammering the auth endpoint until manual restart. - Startup chat sync no longer re-invites you to portals you have manually
left in Matrix. The bridge checks the room's member state and skips the
resync when your membership isleaveorban. Live messages still
trigger re-invite, as before. - Unknown Teams contacts (no profile available, no cached display name)
show as the bare AAD GUID instead of the full8:orgid:<guid>MRI, and
DM rooms with such contacts no longer get the bare MRI written into the
room name; Element falls back to the ghost's display name instead.
Full Changelog: v26.04.2...v27.0