test(serve): expect the dual ready-token announcement in the discovery-after-bind suite

The headless serve path now writes HERMES_BACKEND_READY then
HERMES_DASHBOARD_READY (#60772); update the sentinel-count assertions
in test_serve_mcp_discovery_after_bind.py to match, for both the
discovery-armed and plain headless start_server calls.
This commit is contained in:
Hermes Agent
2026-09-25 17:03:41 -05:00
committed by brooklyn!
parent 496367f011
commit 7bc6de5032

View File

@@ -41,20 +41,24 @@ def test_desktop_serve_arms_mcp_discovery_only_after_ready_sentinel(monkeypatch)
host="127.0.0.1", port=0, open_browser=False, headless=True,
start_mcp_discovery_after_bind=True,
)
# A headless `serve` announces BOTH ready tokens — neutral first, legacy
# second (#60772) — so the sentinel writer fires exactly twice before the
# deferred discovery timer is armed.
timer = mcp_startup._mcp_discovery_deferred
assert order == ["sentinel"] and isinstance(timer, threading.Timer)
assert order == ["sentinel", "sentinel"] and isinstance(timer, threading.Timer)
timer.cancel()
# An agent build inside the delay window pulls discovery forward itself.
mcp_startup.wait_for_mcp_discovery(timeout=0)
assert order == ["sentinel", "discovery:dashboard-mcp-discovery"]
assert order == ["sentinel", "sentinel", "discovery:dashboard-mcp-discovery"]
assert mcp_startup._mcp_discovery_deferred is None
# Without the flag (dashboard / non-Desktop serve) start_server does not
# start discovery itself — cmd_dashboard's pre-import path still owns it.
# Without the flag (any headless serve) start_server does not start
# discovery itself — cmd_dashboard's pre-import path still owns it. The
# dual-token announcement is headless-wide, not discovery-specific.
order.clear()
_reset_discovery_state(monkeypatch)
web_server.start_server(host="127.0.0.1", port=0, open_browser=False, headless=True)
assert order == ["sentinel"] and mcp_startup._mcp_discovery_deferred is None
assert order == ["sentinel", "sentinel"] and mcp_startup._mcp_discovery_deferred is None
def test_deferred_discovery_fires_once_and_is_idempotent(monkeypatch):