fix(#4877): bind ephemeral blank boot workspace

This commit is contained in:
Rod Boev authored and nesquena-hermes committed 2026-06-27 01:15:53 +00:00
1 parent 4ebe2980ca
commit 0aa4f6f8cd
2 files changed
+18

No files matched your search

+1
View File
@@ -2469,6 +2469,7 @@ window._applyTitlebarProfileVisibility=_applyTitlebarProfileVisibility;
const _ephPanelPref=localStorage.getItem('hermes-webui-workspace-panel-pref')==='open'
|| localStorage.getItem('hermes-webui-workspace-panel')==='open';
if(_ephPanelPref&&!_isCompactWorkspaceViewport()) _workspacePanelMode='browse';
await _maybeBindFreshDefaultWorkspaceSession();
syncTopbar();syncWorkspacePanelState();
$('emptyState').style.display='';
await renderSessionList();if(typeof startGatewaySSE==='function')startGatewaySSE();
@@ -154,3 +154,20 @@ def test_no_saved_session_branch_restores_panel_pref_before_bind_attempt():
bind_idx = segment.find(bind_call)
assert bind_idx >= 0, "no-saved-session path must attempt to bind after pref restore"
assert pref_idx < bind_idx, "panel preference restoration must happen before bind attempt"
def test_ephemeral_blank_session_branch_restores_panel_pref_before_bind_attempt():
src = BOOT_JS.read_text(encoding="utf-8")
marker = "if(S.session && (S.session.message_count||0) === 0 && !_restoredInFlight && !_restoredHasDraft){"
marker_idx = src.find(marker)
assert marker_idx >= 0, "ephemeral blank-session path not found"
return_idx = src.find("return;", marker_idx)
assert return_idx > marker_idx, "ephemeral blank-session path must still return early"
segment = src[marker_idx:return_idx]
eph_pref = "if(_ephPanelPref&&!_isCompactWorkspaceViewport()) _workspacePanelMode='browse';"
pref_idx = segment.find(eph_pref)
assert pref_idx >= 0, "ephemeral blank-session path must restore panel preference"
bind_call = "await _maybeBindFreshDefaultWorkspaceSession();"
bind_idx = segment.find(bind_call)
assert bind_idx >= 0, "ephemeral blank-session path must attempt to bind before returning"
assert pref_idx < bind_idx, "ephemeral panel preference restoration must happen before bind attempt"