{"repo":"NousResearch/hermes-agent","public_id":"8309","display_label":"WeCom adapter streaming and message editing work","summary":"These issues and pull requests concern adding and fixing streaming message support in the WeCom (企业微信) gateway adapter, including progressive replies, message editing, and placeholder handling. Multiple approaches and bug reports are represented, with no clear indication of final resolution status.","subsystem":"gateway","counts":{"members":10,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":4,"merged_prs":1,"attempt_prs":5},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":96425},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-08-27T14:33:37+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.27644444444444444},"fix_edges":[{"issue_number":8309,"pr_number":96425,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":10104,"pr_number":96425,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":14061,"pr_number":96425,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":38641,"pr_number":96425,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":47573,"pr_number":96425,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":70634,"pr_number":96425,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":8309,"title":"feat(wecom): implement edit_message for streaming support","url":null,"state":"closed"},{"kind":"issue","number":10101,"title":"[BUG] WeCom Gateway: 'Thinking...' placeholder and streaming updates failing in v0.9.0","url":null,"state":"closed"},{"kind":"issue","number":10104,"title":"[BUG] WeCom Gateway: 'Thinking...' placeholder and streaming updates failing in v0.9.0","url":null,"state":"closed"},{"kind":"issue","number":38641,"title":"WeCom (企业微信) adapter: support streaming / message editing via aibot_respond_msg progressive replies","url":null,"state":"closed"},{"kind":"pr","number":9667,"title":"feat(wecom): progressive native streaming on the reply channel","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"a45bd28598cc4bf24be3025de6fd8814f210945d","number":0},{"kind":"pr","value":"#18828","number":18828}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":10137,"title":"fix(wecom): restore tool progress and skip broken streaming for non-editable platform","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#96425","number":96425},{"kind":"pr","value":"#41771","number":41771}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":34012,"title":"feat(wecom): native draft streaming via REQUIRES_EDIT_FINALIZE framework","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"588d4f9aa","number":0},{"kind":"pr","value":"#7041","number":7041},{"kind":"pr","value":"#9795","number":9795},{"kind":"pr","value":"#12986","number":12986},{"kind":"pr","value":"#18365","number":18365},{"kind":"pr","value":"#18830","number":18830},{"kind":"pr","value":"#20623","number":20623},{"kind":"pr","value":"#30960","number":30960},{"kind":"pr","value":"#35772","number":35772},{"kind":"pr","value":"#38660","number":38660},{"kind":"pr","value":"#41771","number":41771},{"kind":"pr","value":"#26135","number":26135}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":41771,"title":"feat(wecom): native reply streaming (typing bubble, per-turn isolation, dedup-safe)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"7105657f2c","number":0},{"kind":"pr","value":"#96425","number":96425}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":85821,"title":"feat(wecom): add turn-scoped native streaming","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#96425","number":96425},{"kind":"pr","value":"#41771","number":41771}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":96425,"title":"feat(wecom): native reply streaming — typing bubble, per-turn isolation, dedup-safe delivery (salvage #41771)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["contributors/emails/[redacted:email]","gateway/display_config.py","gateway/run.py","gateway/slash_commands.py","gateway/stream_consumer.py","hermes_cli/config_defaults.py","plugins/platforms/wecom/adapter.py","tests/gateway/test_approval_boundary.py","tests/gateway/test_display_config.py","tests/gateway/test_per_platform_streaming_defaults.py","tests/gateway/test_stream_consumer_tool_progress.py","tests/gateway/test_stream_consumer_wecom_native.py","tests/gateway/test_wecom.py","tests/gateway/test_wecom_double_send.py","tests/gateway/test_wecom_per_turn.py","tests/gateway/test_wecom_stream_dup_fix.py","tests/tools/test_send_message_cross_loop.py","tools/send_message_tool.py","website/docs/user-guide/messaging/wecom.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}