mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-27 17:58:07 +00:00
The sidebar strip and the Channels page could contradict each other on the same page load — "Gateway running" next to "The gateway is not running." /api/status and /api/messaging/platforms each open-coded their own liveness ladder: status probed GATEWAY_HEALTH_URL and scoped its PID/state reads to the requested profile, messaging did neither and used the uncached raw PID probe. Three deployments hit the split: a cross-container gateway (no local PID, only the health probe can see it), a profile-scoped dashboard (messaging borrowed a DIFFERENT profile's runtime state, reporting a false "connected" that hides a real outage — #71211), and a launch-service managed gateway with no PID file. Adds resolve_gateway_liveness() in gateway/status.py as the single ladder (cached PID -> HTTP health probe -> runtime-status PID with expected_home) and routes both endpoints, /api/messaging/platforms/{id}/test, and the kanban dispatcher-presence probe through it. Probe callables are injectable so the existing monkeypatch seams keep working, and GatewayLiveness.probe_error distinguishes "down" from "couldn't tell" so the kanban warning keeps failing OPEN instead of crying wolf. Closes #71211. |
||
|---|---|---|
| .. | ||
| browser | ||
| dashboard_auth | ||
| image_gen | ||
| memory | ||
| model_providers | ||
| platforms/photon | ||
| transcription | ||
| tts | ||
| video_gen | ||
| web | ||
| __init__.py | ||
| test_achievements_plugin.py | ||
| test_chronos_cron.py | ||
| test_chronos_verify.py | ||
| test_discord_runtime_failure.py | ||
| test_disk_cleanup_plugin.py | ||
| test_google_meet_audio.py | ||
| test_google_meet_node.py | ||
| test_google_meet_plugin.py | ||
| test_google_meet_realtime.py | ||
| test_hindsight_health_grace_timeout.py | ||
| test_hindsight_root_guard.py | ||
| test_kanban_attachments.py | ||
| test_kanban_dashboard_plugin.py | ||
| test_kanban_model_override.py | ||
| test_kanban_worker_runs.py | ||
| test_langfuse_plugin.py | ||
| test_nemo_relay_plugin.py | ||
| test_plugin_dashboard_auth_contract.py | ||
| test_raft_check_fn_silent.py | ||
| test_retaindb_plugin.py | ||
| test_security_guidance_plugin.py | ||
| test_teams_pipeline_plugin.py | ||