Fix autologin when connection restored

This commit is contained in:
2025-07-25 15:31:19 +01:00
parent 0928d00059
commit f4f95ffff4

View File

@@ -25,6 +25,7 @@
let connection = null;
let triggerSystem: TriggerSystem;
let accessibilityManager: AccessibilityManager;
let awaitingSessionResumed = false;
// Speech control
function handleKeyDown(event: KeyboardEvent): void {
@@ -281,6 +282,33 @@
addToOutputHistory(`Connected to ${profile?.host}:${profile?.port}`);
}
// Check if we're reconnecting to an existing session
const hasStoredSession = connection && connection.getSessionId();
if (hasStoredSession) {
console.log(`Connection has existing session ID, waiting for session_resumed event before autologin`);
awaitingSessionResumed = true;
// Set a timeout in case session_resumed event doesn't come
setTimeout(() => {
if (awaitingSessionResumed) {
console.log('Timeout waiting for session_resumed, proceeding with autologin');
awaitingSessionResumed = false;
performAutoLogin(profile);
}
}, 5000); // 5 second timeout
} else {
// Fresh connection, proceed with autologin immediately
console.log('Fresh connection, proceeding with autologin');
performAutoLogin(profile);
}
dispatch('connected');
}
/**
* Perform auto-login if enabled
*/
function performAutoLogin(profile) {
// Handle auto-login if enabled
if (profile?.autoLogin?.enabled) {
setTimeout(() => {
@@ -308,8 +336,6 @@
}
}, 1000);
}
dispatch('connected');
}
/**
@@ -458,6 +484,12 @@
function handleSessionResumed(data) {
console.log(`Session resumed for ${profileId}:`, data);
// We successfully resumed a session, so don't perform autologin
if (awaitingSessionResumed) {
console.log('Session resumed successfully, skipping autologin');
awaitingSessionResumed = false;
}
if (data.messagesReplayed > 0) {
// Add a system message to the output to notify the user
addToOutputHistory(`[SYSTEM] Reconnected to MUD. ${data.messagesReplayed} messages have been replayed.`, false);