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

@@ -87,9 +87,9 @@ GoRouter router(Ref ref) {
GoRoute(
path: AppRoutes.call,
builder: (context, state) {
// safe: path param is guaranteed by route definition
final roomId = state.pathParameters['roomId']!;
return CallScreen(roomId: roomId);
final isVideo = state.uri.queryParameters['video'] != '0';
return CallScreen(roomId: roomId, isVideo: isVideo);
},
),
GoRoute(