// Version: 1.0.1 | Created: 2026-04-01 // Matrix SDK client singleton provider. // The Matrix client is kept alive for the full app lifetime once initialised. import 'package:matrix/matrix.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; import '../config/app_config.dart'; part 'matrix_client.g.dart'; /// Provides the single [Client] instance used throughout the app. /// /// keepAlive: true — the Matrix client must never be disposed while the app /// is running; it holds the sync loop and all room state. /// /// Phase 1: no databaseBuilder — uses in-memory store only (no persistence /// across restarts). Phase 2 will wire in a drift-backed DatabaseApi. @Riverpod(keepAlive: true) Client matrixClient(Ref ref) { return Client(AppConfig.appName); }