From e9baeff2b20125bee6449a51570473d45125e9c2 Mon Sep 17 00:00:00 2001 From: Rod Boev Date: Tue, 23 Jun 2026 10:51:33 -0400 Subject: [PATCH] fix(sidebar): preserve attention rows in filtered session payloads (#4775) --- api/routes.py | 2 ++ ...est_issue4775_sidebar_hidden_zero_message_pushdown.py | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/api/routes.py b/api/routes.py index bb63f4aa..1915b7ec 100644 --- a/api/routes.py +++ b/api/routes.py @@ -1950,6 +1950,8 @@ def _build_session_list_cache_payload( return True attention = session.get("attention") + if not (isinstance(attention, dict) and attention.get("kind")): + attention = _session_attention_summary(str(session.get("session_id") or "")) if isinstance(attention, dict) and attention.get("kind"): if _numeric_count(attention.get("count")) > 0: return True diff --git a/tests/test_issue4775_sidebar_hidden_zero_message_pushdown.py b/tests/test_issue4775_sidebar_hidden_zero_message_pushdown.py index d78d27fb..b1cc76ff 100644 --- a/tests/test_issue4775_sidebar_hidden_zero_message_pushdown.py +++ b/tests/test_issue4775_sidebar_hidden_zero_message_pushdown.py @@ -101,7 +101,6 @@ def _session_rows(): "profile": "default", "archived": False, "message_count": 0, - "attention": {"kind": "clarify", "count": 1}, "updated_at": 600, "last_message_at": 600, "source": "webui", @@ -182,6 +181,13 @@ def _install_common_monkeypatches(monkeypatch, rows): monkeypatch.setattr(routes, "all_sessions", lambda diag=None: list(rows)) monkeypatch.setattr(routes, "_reconcile_stale_stream_state_for_session_rows", lambda _rows: False) monkeypatch.setattr(routes, "_enrich_sidebar_lineage_metadata", lambda _rows: None) + monkeypatch.setattr( + routes, + "_session_attention_summary", + lambda session_id: {"kind": "clarify", "count": 1} + if str(session_id) == "attention-row" + else None, + ) monkeypatch.setattr(routes, "get_cli_sessions", lambda source_filter=None, all_profiles=False: []) monkeypatch.setattr(routes, "agent_session_rows_existing", lambda ids, profile=None: set(ids) & session_ids) monkeypatch.setattr(routes, "load_settings", lambda: {"show_cli_sessions": True}) @@ -235,6 +241,7 @@ def test_omit_exclude_hidden_still_returns_default_hidden_rows(monkeypatch): assert "hidden-by-default" in session_ids +@pytest.mark.skipif(NODE is None, reason="node not on PATH") def test_default_and_unassigned_queries_send_exclude_hidden(monkeypatch): src = SESSIONS_JS.read_text(encoding="utf-8") requested_source_fn = _extract_function(src, "_requestedSessionSidebarSource")