{"repo":"NousResearch/hermes-agent","public_id":"74560","display_label":"Desktop assistant reply stream duplicate/loss fixes","summary":"These items address a bug where the interimBoundaryPending flag being reset causes duplicate or lost assistant reply bubbles on desktop. The work involves diagnosing and patching the stream clustering and final-reply settlement logic.","subsystem":"apps/desktop","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":86588,"merged_at":"2026-08-15T03:23:18+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-08-15T03:23:18+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":42962,"pr_number":86588,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-15T03:23:18+00:00"},{"issue_number":74560,"pr_number":86588,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-15T03:23:18+00:00"}],"members":[{"kind":"issue","number":74560,"title":"[Bug]: Desktop double-render (#63679 followup) — interimBoundaryPending flag reset causes duplicate bubbles","url":null,"state":"closed"},{"kind":"pr","number":76583,"title":"fix(desktop): settle final reply onto interim even after message.start reset the boundary flag","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#86588","number":86588}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":86588,"title":"fix(desktop): salvage duplicate/lost assistant reply stream cluster (#84296, #76583, #82843, #86299)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/src/app/contrib/hooks/use-background-sync.test.ts","apps/desktop/src/app/contrib/hooks/use-background-sync.ts","apps/desktop/src/app/contrib/wiring.tsx","apps/desktop/src/app/session/hooks/use-message-stream/index.ts","apps/desktop/src/app/session/hooks/use-message-stream/interim-sealing.test.tsx","apps/desktop/src/app/session/hooks/use-session-actions.test.tsx","apps/desktop/src/app/session/hooks/use-session-actions/index.ts","apps/desktop/src/app/session/hooks/use-session-actions/utils.test.ts","apps/desktop/src/app/session/hooks/use-session-actions/utils.ts","contributors/emails/[redacted:email]","contributors/emails/[redacted:email]"]}],"trust":{"default_tier":"verified","includes_suggested":false}}