From ef5ed0ae629a496e2aae052d03cddb12ebcb8d88 Mon Sep 17 00:00:00 2001 From: MervinPraison <454862+MervinPraison@users.noreply.github.com> Date: Wed, 4 Nov 2026 12:20:19 +0000 Subject: [PATCH] fix: guard session rail against non-array session payloads Co-Authored-By: Claude Opus 5.5 --- src/praisonaiui/templates/frontend/plugins/views/chat.js | 3 ++- tests/unit/test_chat_session_rail_search.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/praisonaiui/templates/frontend/plugins/views/chat.js b/src/praisonaiui/templates/frontend/plugins/views/chat.js index 0a57b99..fc68a35 100644 --- a/src/praisonaiui/templates/frontend/plugins/views/chat.js +++ b/src/praisonaiui/templates/frontend/plugins/views/chat.js @@ -1047,7 +1047,8 @@ async function loadSessions() { resp = await fetch('/sessions'); } const data = await resp.json(); - allSessions = data.sessions || data || []; + const fetched = data.sessions || data || []; + allSessions = Array.isArray(fetched) ? fetched : []; renderSessionList(); } catch (e) { console.warn('[Chat] Failed to load sessions:', e); diff --git a/tests/unit/test_chat_session_rail_search.py b/tests/unit/test_chat_session_rail_search.py index 966d2f7..12d013c 100644 --- a/tests/unit/test_chat_session_rail_search.py +++ b/tests/unit/test_chat_session_rail_search.py @@ -21,7 +21,7 @@ class TestChatSessionRailSearch: def test_load_sessions_caches_and_delegates_render(self): src = CHAT.read_text() - assert "allSessions = data.sessions || data || [];" in src + assert "allSessions = Array.isArray(fetched) ? fetched : [];" in src body = src.split("async function loadSessions()", 1)[1].split("\n}\n", 1)[0] assert "renderSessionList();" in body