odysseus/tests/test_interactive_gate_passive_paths.py
Michael a6bc86e331
fix(scheduler): treat /api/email/unread-state as passive UI poll (#6009)
Background scheduled agent runs were aborted as "Stopped by user" when
the web UI was merely open, because the idle /api/email/unread-state
poll was counted as foreground activity while its sibling
/api/email/urgency-state was already excluded.

Fixes #5981

Co-authored-by: michaelxer <michaelxer@users.noreply.github.com>
2026-08-14 10:22:27 +01:00

19 lines
874 B
Python

"""Regression for idle UI polls that must not count as foreground activity."""
from src.interactive_gate import should_track_interactive_request
def test_email_unread_state_is_passive_like_urgency_state():
assert should_track_interactive_request("/api/email/urgency-state") is False
assert should_track_interactive_request("/api/email/unread-state") is False
def test_real_interactive_paths_still_tracked():
assert should_track_interactive_request("/api/chat_stream") is True
assert should_track_interactive_request("/api/email/messages") is True
assert should_track_interactive_request("/api/tasks", method="POST") is True
def test_options_never_tracked():
assert should_track_interactive_request("/api/email/unread-state", method="OPTIONS") is False
assert should_track_interactive_request("/api/chat_stream", method="OPTIONS") is False