fix: calls — correct MSC4143 JWT flow + message order

Calls:
- JWT fetch now uses correct MSC4143 flow: get OpenID token from
  Synapse, then POST to /_matrix/livekit/jwt/sfu/get (was using
  GET with Bearer token to wrong path — returned 301→404)
- Error messages now visible for 3 seconds before popping screen
  (was flashing away instantly — user couldn't see failure reason)
- Voice vs video calls differentiated via ?video=0/1 query param
- Debug logging added to JWT flow for troubleshooting

Messages:
- Chat timeline now shows newest at bottom (standard behaviour).
  Was reversed twice: SDK returns newest-first, code reversed to
  oldest-first, then ListView(reverse:true) put oldest at bottom.
  Removed the extra .reversed — newest-first + reverse:true = correct.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-03 06:21:08 +10:00
parent b941cdfe4b
commit 1f58c9e21d
5 changed files with 79 additions and 32 deletions

View File

@@ -109,7 +109,9 @@ class ChatRepository {
for (final e in timeline.events) {
models.add(_toModel(e, timeline, myUserId));
}
return models.reversed.toList();
// Matrix SDK timeline.events is newest-first. Keep that order because
// the chat ListView uses reverse:true — index 0 (newest) at the bottom.
return models;
}
MessageModel _toModel(Event event, Timeline timeline, String myUserId) {