Dieser Commit ist enthalten in:
Claude Project Manager
2026-01-18 18:15:34 +01:00
Ursprung 4e82d5ef8f
Commit a25a26a01a
47 geänderte Dateien mit 4756 neuen und 2956 gelöschten Zeilen

Datei anzeigen

@ -118,27 +118,28 @@ class SessionController(QObject):
else:
error_msg = f"Account mit ID {account_id} nicht gefunden"
logger.error(error_msg)
# Feature 5: Guard freigeben da Worker nicht gestartet wird
guard.end(success=False)
# Guard freigeben - kein User-Fehler, daher release()
guard.release()
self.login_failed.emit(account_id, error_msg)
except Exception as e:
logger.error(f"Fehler beim Ein-Klick-Login: {e}")
# Feature 5: Guard freigeben bei Fehler vor Worker-Start
guard.end(success=False)
# Guard freigeben - technischer Fehler vor Start, daher release()
guard.release()
self.login_failed.emit(account_id, str(e))
def _cancel_login(self, account_id: str):
"""Bricht den Login-Prozess ab mit Guard-Freigabe"""
"""
Bricht den Login-Prozess ab.
User-Abbruch zählt NICHT als Failure.
"""
logger.info(f"Login für Account {account_id} wurde abgebrochen")
# Guard IMMER freigeben bei Cancel (einfacher + robuster)
# Doppelte Freigabe ist kein Problem (wird von ProcessGuard ignoriert)
# Guard freigeben - User-Abbruch, daher release()
from utils.process_guard import get_guard
guard = get_guard()
if guard.is_locked():
guard.end(success=False)
logger.info("Guard freigegeben bei Login-Cancel")
guard.release() # Idempotent - mehrfacher Aufruf ist sicher
logger.info("Guard released bei Login-Cancel")
# Dialog schließen
if hasattr(self, 'login_dialog') and self.login_dialog: