{"repo":"NousResearch/hermes-agent","public_id":"37869","display_label":"Desktop remote gateway connection flapping and WebSocket readiness issues","summary":"Most members concern Hermes Desktop in remote gateway mode, with reports of connection errors, reconnect loops, or fallback to the local backend even when the remote backend appears reachable. Related pull requests touch stale backend exit handling and WebSocket readiness checks; a couple of members (Host/Origin guard, CLI --insecure) are adjacent WebSocket topics.","subsystem":"apps/desktop","counts":{"members":15,"open_issues":0,"open_issues_distinct":0,"open_prs":1,"closed_issues":8,"merged_prs":1,"attempt_prs":6},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":65885,"merged_at":"2026-07-16T19:01:37+00:00"},"resolution":{"state":"partially_resolved","by":"pr-65885"},"freshness":{"state":"verified","last_verified_at":"2026-07-16T19:01:37+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.09066666666666666},"fix_edges":[{"issue_number":38266,"pr_number":65885,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-07-16T19:01:37+00:00"}],"members":[{"kind":"issue","number":37869,"title":"[Bug]: Desktop app shows remote connection failure while logs say remote backend is ready","url":null,"state":"closed"},{"kind":"issue","number":38266,"title":"[Bug]: Hermes Desktop 0.15.1 remote gateway enters reconnect loop after successful connection","url":null,"state":"closed"},{"kind":"issue","number":38332,"title":"Hermes Desktop remote gateway reaches backend but UI still shows startup error / falls back to local backend unless env-forced","url":null,"state":"closed"},{"kind":"issue","number":38873,"title":"Hermes Desktop remote gateway mode flaps back to local backend after successful remote readiness","url":null,"state":"closed"},{"kind":"issue","number":40083,"title":"Desktop: Electron renderer crash loop on remote gateway connection (v0.15.1)","url":null,"state":"closed"},{"kind":"issue","number":40391,"title":"[Bug]: Hermes Desktop Remote Gateway — connects to REST but fails WebSocket / flaps back to local","url":null,"state":"closed"},{"kind":"issue","number":41566,"title":"[Bug]: Desktop still shows 'Could not connect to Hermes gateway' after successful remote HTTPS/WSS verification","url":null,"state":"closed"},{"kind":"issue","number":43904,"title":"[Desktop v0.16.0] Remote backend \"ready\" but UI stuck on red error dialog, loops in reset/repair cycle","url":null,"state":"closed"},{"kind":"pr","number":17887,"title":"fix(cli): honor --insecure for dashboard WebSocket connections","url":null,"state":"closed","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":38292,"title":"fix(desktop): ignore stale backend exits","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"6feb40e702829639c22aae2ae29d63e9ac5e8508","number":0},{"kind":"commit","value":"39d09453f95e8aefc0c97e5d9b30ff341cae9ed8","number":0}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":39522,"title":"fix(desktop): validate remote gateway websocket readiness","url":null,"state":"open","close_reason":{"refs":[{"kind":"pr","value":"#39522","number":39522},{"kind":"pr","value":"#38873","number":38873}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":40408,"title":"fix(security): bypass Host/Origin guard for authenticated WS connections (#38412, #40391)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"6ed9a2de8","number":0},{"kind":"commit","value":"dd28f2ac9","number":0},{"kind":"pr","value":"#38412","number":38412}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":41570,"title":"fix(desktop): increase WebSocket probe grace window from 750ms to 3s (fixes #41566)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"39d09453f9","number":0},{"kind":"pr","value":"#41566","number":41566}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":62308,"title":"fix(desktop): preserve active connection across stale backend exits","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#65885","number":65885}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":65885,"title":"fix(desktop): preserve active connection across stale backend exits (supersedes #62308)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/electron/backend-connection-state.test.ts","apps/desktop/electron/backend-connection-state.ts","apps/desktop/electron/main.ts","apps/desktop/src/app/settings/gateway-settings.test.ts","apps/desktop/src/app/settings/gateway-settings.tsx"]}],"trust":{"default_tier":"verified","includes_suggested":false}}