feat: persistentes Auth-Log für Logout-Diagnose (M1)
Neuer AuthLog schreibt Login-Status-Wechsel und SDK-Warnungen/-Fehler
in eine Datei im App-Support-Verzeichnis, die einen Neustart übersteht.
Zusätzlich werden alle drei bewusst ausgelösten Logout-Buttons geloggt,
damit sich künftig unterscheiden lässt: Nutzer-Logout vs. vom SDK
automatisch ausgelöster Logout (Soft-Logout/M_UNKNOWN_TOKEN).
Reiner Logging-Zusatz, keine Verhaltensänderung – erster Schritt laut
ROADMAP M1 ("Erst Logging an allen Logout-Pfaden einbauen").
This commit is contained in:
@@ -21,6 +21,7 @@ import 'package:pretty_qr_code/pretty_qr_code.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:pointycastle/export.dart' as pc;
|
||||
import 'package:pyramid/core/app_state.dart';
|
||||
import 'package:pyramid/core/auth_log.dart';
|
||||
import 'package:pyramid/core/e2ee_diagnostics.dart';
|
||||
import 'package:pyramid/core/livekit_call_manager.dart';
|
||||
import 'package:pyramid/core/matrix_client.dart';
|
||||
@@ -596,6 +597,7 @@ class _LogoutNavButtonState extends ConsumerState<_LogoutNavButton> {
|
||||
try {
|
||||
widget.onClose();
|
||||
final client = await ref.read(matrixClientProvider.future);
|
||||
unawaited(AuthLog.write('User-initiated logout (Settings-Sidebar)'));
|
||||
await client.logout();
|
||||
} catch (_) {}
|
||||
}
|
||||
@@ -4839,6 +4841,7 @@ class _DeleteAccountDialogState extends ConsumerState<_DeleteAccountDialog> {
|
||||
return;
|
||||
}
|
||||
// Konto wurde gelöscht — ausloggen
|
||||
unawaited(AuthLog.write('User-initiated logout (Konto gelöscht)'));
|
||||
try { await client.logout(); } catch (_) {}
|
||||
}
|
||||
|
||||
@@ -5137,6 +5140,7 @@ class _AboutSection extends ConsumerWidget {
|
||||
);
|
||||
if (confirm == true) {
|
||||
final client = await ref.read(matrixClientProvider.future);
|
||||
unawaited(AuthLog.write('User-initiated logout (Settings)'));
|
||||
await client.logout().catchError((_) {});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user