{"repo":"NousResearch/hermes-agent","public_id":"140667","display_label":"Gateway/WebSocket slow RPC handling and client recovery","summary":"The members concern slow or blocked RPC handling over a shared gateway WebSocket (a slow session.context_breakdown read reportedly delaying queued calls), a TUI change to isolate such RPCs, and client recovery behavior when falling behind or reconnecting. They appear related but not identical, and the titles alone do not show how closely the first item ties to the other two.","subsystem":"gateway","counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":140968,"merged_at":"2026-10-18T17:53:36+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-10-18T17:53:36+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":140365,"pr_number":140968,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-18T17:53:36+00:00"},{"issue_number":140388,"pr_number":140968,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-18T17:53:36+00:00"},{"issue_number":140521,"pr_number":140968,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-18T17:53:36+00:00"},{"issue_number":140551,"pr_number":140968,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-18T17:53:36+00:00"},{"issue_number":140597,"pr_number":140968,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-18T17:53:36+00:00"},{"issue_number":140667,"pr_number":140968,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-18T17:53:36+00:00"}],"members":[{"kind":"issue","number":140667,"title":"[Bug]: Desktop: session.control.read times out at 30s - one slow read-only handler (session.context_breakdown) starves every queued RPC on the same WS","url":null,"state":"closed"},{"kind":"pr","number":140671,"title":"fix(tui): isolate slow context breakdown RPCs","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#140968","number":140968},{"kind":"pr","value":"#140671","number":140671}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":140968,"title":"Clients that fall behind, reconnect or wait recover from the gateway instead of failing the turn (package 10 lane 2)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["acp_adapter/gateway_reply.py","acp_adapter/gateway_server.py","agent/session_persistence.py","apps/desktop/src/app/chat/session-tile-actions.ts","apps/desktop/src/app/session/hooks/use-prompt-actions/owner-forward.test.tsx","apps/desktop/src/app/session/hooks/use-prompt-actions/submit.ts","apps/desktop/src/app/session/hooks/use-prompt-actions/utils.ts","apps/desktop/src/i18n/en.ts","apps/desktop/src/i18n/overlay-gaps.json","apps/desktop/src/lib/error-surface.ts","apps/shared/src/gateway-contract.generated.ts","apps/shared/src/gateway-contract.openrpc.json","gateway/platforms/api_server.py","gateway/platforms/api_server_bot_chat.py","gateway/run_turn_persistence.py","gateway/run_turn_progress.py","gateway/run_turn_runner.py","gateway/session_api_turn.py","gateway/session_authority.py","gateway/session_automation.py","gateway/session_tui_reads.py","hermes_cli/gateway_agent.py","hermes_cli/gateway_chat_view.py","hermes_cli/gateway_client.py","hermes_cli/gateway_connection.py","hermes_cli/gateway_replay_gap.py","hermes_cli/gateway_session_store.py","hermes_cli/kanban_worker_client.py","hermes_cli/session_schema_history.py","hermes_cli/stream_json.py","hermes_state_common.py","hermes_state_messages.py","hermes_state_runtime.py","locales/_keys.desktop.json","tests/acp_adapter/test_acp_reattach_unknown_notice.py","tests/acp_adapter/test_gateway_queued_unknown.py","tests/acp_adapter/test_gateway_replay_gap.py","tests/acp_adapter/test_gateway_terminal_projection.py","tests/agent/test_kanban_turn_recovery.py","tests/gateway/fixtures/replay_gap_owner.py","tests/gateway/test_api_canonical_projection.py","tests/gateway/test_api_server_bot_chat_title_fallback.py","tests/gateway/test_api_session_compression_exhaustion.py","tests/gateway/test_authority_pause_recovery.py","tests/gateway/test_peer_dm_bot_chat_context_overflow.py","tests/gateway/test_tui_session_reads.py","tests/hermes_cli/test_gateway_agent_replay_gap.py","tests/hermes_cli/test_gateway_chat_view_replay_gap.py","tests/hermes_cli/test_gateway_client_backlog.py","tests/hermes_cli/test_gateway_client_recovery_backlog.py","tests/hermes_cli/test_kanban_worker_owner_wait.py","tests/tui_gateway/test_bot_live_owner_delivery.py","tests/tui_gateway/test_legacy_submit_forwards_to_owner.py","tests/tui_gateway/test_notification_refusal_backoff.py","tests/tui_gateway/test_tui_gateway_server.py","tests/tui_gateway/test_tui_gateway_ws.py","tests/tui_gateway/test_ws_concurrent_reads.py","tui_gateway/contracts/prompt_voice.py","tui_gateway/methods_prompt.py","tui_gateway/owner_forward.py","tui_gateway/prompt_turn.py","tui_gateway/session_lifecycle.py","tui_gateway/session_notifications.py","tui_gateway/ws.py","website/docs/reference/cli-commands.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}