fix: actually jump into restored session on reload, not just highlight tab

handleInit is called twice on page load (loadState + SSE init). The second
call cleared terminal state but skipped selectSession because activeSessionId
was still set from the first call. Now reset activeSessionId before
re-selecting so the terminal buffer always gets reloaded.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
arkon
2026-02-12 20:17:10 +01:00
co-authored by Claude Opus 4.6
parent f47ae4b80f
commit 82a0da035c
3 changed files with 13 additions and 6 deletions
+11 -4
View File
@@ -3211,10 +3211,17 @@ class ClaudemanApp {
});
}
// Restore previously active session (survives page reload), or fall back to first
if (this.sessionOrder.length > 0 && !this.activeSessionId) {
let restoreId = null;
try { restoreId = localStorage.getItem('claudeman-active-session'); } catch {}
// Restore previously active session (survives page reload + SSE reconnect)
// Must always re-select because handleInit clears terminal state above.
// Reset activeSessionId so selectSession doesn't early-return.
const previousActiveId = this.activeSessionId;
this.activeSessionId = null;
if (this.sessionOrder.length > 0) {
// Priority: current active > localStorage > first session
let restoreId = previousActiveId;
if (!restoreId || !this.sessions.has(restoreId)) {
try { restoreId = localStorage.getItem('claudeman-active-session'); } catch {}
}
if (restoreId && this.sessions.has(restoreId)) {
this.selectSession(restoreId);
} else {