{"repo":"NousResearch/hermes-agent","public_id":"33287","display_label":"WeCom WebSocket reconnection reliability and safety fixes","summary":"This cluster focuses on bugs and fixes in the WeCom adapter's WebSocket connection lifecycle, specifically around exception-unsafe cleanup, missing connection states in handshake handling, silent reconnection failures, and insufficient retry logging.","subsystem":"gateway","counts":{"members":13,"open_issues":4,"open_issues_distinct":4,"open_prs":3,"closed_issues":1,"merged_prs":0,"attempt_prs":8},"landed_fix":null,"resolution":{"state":"unresolved","by":null},"freshness":{"state":"never_verified","last_verified_at":null,"is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.12102564102564105},"fix_edges":[],"members":[{"kind":"issue","number":33287,"title":"WeCom adapter: connection degradation after May 15 gateway infrastructure changes","url":null,"state":"open"},{"kind":"issue","number":47572,"title":"[BUG] WeCom adapter: WebSocket reconnection may fail silently without logging success or failure","url":null,"state":"closed"},{"kind":"issue","number":55491,"title":"WeCom _cleanup_ws should be defensive against internal exceptions","url":null,"state":"open"},{"kind":"issue","number":64512,"title":"[Bug] WeCom adapter: _cleanup_ws() exception-unsafe → permanent reconnect failure + silent loop death","url":null,"state":"open"},{"kind":"issue","number":64703,"title":"fix(wecom): _wait_for_handshake missing CLOSING state causes permanent reconnect failure after mass restart","url":null,"state":"open"},{"kind":"pr","number":47606,"title":"fix(wecom): bound reconnect attempts and log retries","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"f2a7adba5410cc1799e56fa77b47f84fcd9a2936","number":0},{"kind":"pr","value":"#47572","number":47572}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":47622,"title":"fix(wecom): improve reconnection logging with attempt counts (#47572)","url":null,"state":"closed","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":55516,"title":"fix(wecom): guard _cleanup_ws against exceptions from resource close()","url":null,"state":"open","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":56463,"title":"fix(gateway): make WeCom _cleanup_ws defensive against partially-initialized adapters (#55491)","url":null,"state":"open","close_reason":{"category":"partial_fix","implication":"needs_llm"},"merged":false},{"kind":"pr","number":64678,"title":"fix(wecom): make _cleanup_ws() exception-safe to prevent permanent disconnect (#64512)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#64184","number":64184},{"kind":"pr","value":"#64184","number":64184}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":64716,"title":"fix(wecom): add CLOSING state to _wait_for_handshake terminal handler","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"67e57a15230e","number":0},{"kind":"pr","value":"#64703","number":64703},{"kind":"pr","value":"#64716","number":64716},{"kind":"pr","value":"#64707","number":64707},{"kind":"pr","value":"#64716","number":64716},{"kind":"pr","value":"#64716","number":64716},{"kind":"pr","value":"#64727","number":64727},{"kind":"pr","value":"#64716","number":64716},{"kind":"pr","value":"#64707","number":64707},{"kind":"pr","value":"#64727","number":64727},{"kind":"pr","value":"#64716","number":64716},{"kind":"pr","value":"#64716","number":64716},{"kind":"pr","value":"#64716","number":64716},{"kind":"pr","value":"#64707","number":64707},{"kind":"pr","value":"#64727","number":64727},{"kind":"pr","value":"#64716","number":64716},{"kind":"pr","value":"#374151","number":374151},{"kind":"pr","value":"#64703","number":64703},{"kind":"pr","value":"#64707","number":64707},{"kind":"pr","value":"#64716","number":64716},{"kind":"pr","value":"#64727","number":64727}],"category":"partial_fix","implication":"needs_llm"},"merged":false},{"kind":"pr","number":64727,"title":"fix(wecom): add CLOSING state to _wait_for_handshake auth guard (#64703)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#64716","number":64716}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":64729,"title":"fix(wecom): make _cleanup_ws exception-safe (#64512)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#64678","number":64678}],"category":"duplicate_of","implication":"duplicate"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}