mirror of
https://github.com/nesquena/hermes-webui.git
synced 2026-07-20 22:51:07 +00:00
Render session recovery card from active session state
This commit is contained in:
+4
-1
@@ -13814,7 +13814,10 @@ function renderMessages(options){
|
|||||||
const summary=m.provider_details_label||'Provider details';
|
const summary=m.provider_details_label||'Provider details';
|
||||||
bodyHtml += `<details class="provider-error-details"><summary>${esc(String(summary))}</summary><pre><code>${esc(String(m.provider_details))}</code></pre></details>`;
|
bodyHtml += `<details class="provider-error-details"><summary>${esc(String(summary))}</summary><pre><code>${esc(String(m.provider_details))}</code></pre></details>`;
|
||||||
}
|
}
|
||||||
const recoveryHtml=(!isUser&&m._compressionRecovery) ? _compressionRecoveryHtml(m._compressionRecovery, (S.session&&S.session.session_id)||'') : '';
|
const recoveryPayload=(!isUser&&m._compressionRecovery)
|
||||||
|
? m._compressionRecovery
|
||||||
|
: (!isUser&&isLastAssistant&&isTurnFinalAssistant&&typeof _activeCompressionRecoveryPayload==='function' ? _activeCompressionRecoveryPayload() : null);
|
||||||
|
const recoveryHtml=recoveryPayload ? _compressionRecoveryHtml(recoveryPayload, (S.session&&S.session.session_id)||'') : '';
|
||||||
if(recoveryHtml) bodyHtml += recoveryHtml;
|
if(recoveryHtml) bodyHtml += recoveryHtml;
|
||||||
const statusHtml = (!isUser&&m._statusCard) ? _statusCardHtml(m._statusCard) : '';
|
const statusHtml = (!isUser&&m._statusCard) ? _statusCardHtml(m._statusCard) : '';
|
||||||
const isEditableUser=isUser&&rawIdx===lastUserRawIdx;
|
const isEditableUser=isUser&&rawIdx===lastUserRawIdx;
|
||||||
|
|||||||
@@ -431,6 +431,19 @@ def test_compression_recovery_ui_wires_card_action_and_send_intercept():
|
|||||||
assert "_compressionRecovery:recovery||undefined" in messages
|
assert "_compressionRecovery:recovery||undefined" in messages
|
||||||
|
|
||||||
|
|
||||||
|
def test_compression_recovery_ui_renders_session_level_recovery_on_terminal_message():
|
||||||
|
ui = (ROOT / "static/ui.js").read_text(encoding="utf-8")
|
||||||
|
start = ui.index("const recoveryPayload=(!isUser&&m._compressionRecovery)")
|
||||||
|
end = ui.index("const statusHtml", start)
|
||||||
|
body = ui[start:end]
|
||||||
|
|
||||||
|
assert "? m._compressionRecovery" in body
|
||||||
|
assert "_activeCompressionRecoveryPayload()" in body
|
||||||
|
assert "isLastAssistant&&isTurnFinalAssistant" in body
|
||||||
|
assert "typeof _activeCompressionRecoveryPayload==='function'" in body
|
||||||
|
assert body.index("m._compressionRecovery") < body.index("_activeCompressionRecoveryPayload()")
|
||||||
|
|
||||||
|
|
||||||
def test_compression_recovery_ui_skips_message_fallback_after_session_clear():
|
def test_compression_recovery_ui_skips_message_fallback_after_session_clear():
|
||||||
ui = (ROOT / "static/ui.js").read_text(encoding="utf-8")
|
ui = (ROOT / "static/ui.js").read_text(encoding="utf-8")
|
||||||
start = ui.index("function _activeCompressionRecoveryPayload(){")
|
start = ui.index("function _activeCompressionRecoveryPayload(){")
|
||||||
|
|||||||
Reference in New Issue
Block a user