{"repo":"NousResearch/hermes-agent","public_id":"70108","display_label":"Desktop duplicate assistant reply rendering fixes","summary":"These issues and PRs address a bug where the desktop client intermittently renders assistant replies more than once, covering scenarios involving tool-call turns, partial receipts, `failed` turns, steers, and reasoning-only streams. The work involves multiple targeted fixes to the transcript rendering logic.","subsystem":"apps/desktop","counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":2,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":120692,"merged_at":"2026-09-23T22:13:54+00:00"},"resolution":{"state":"resolved","by":"pr-120692"},"freshness":{"state":"verified","last_verified_at":"2026-09-23T22:13:54+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":59423,"pr_number":70232,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-07-23T20:13:02+00:00"},{"issue_number":63679,"pr_number":70232,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-07-23T20:13:02+00:00"},{"issue_number":68927,"pr_number":120692,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T22:13:54+00:00"},{"issue_number":70108,"pr_number":70232,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-07-23T20:13:02+00:00"},{"issue_number":70108,"pr_number":120692,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T22:13:54+00:00"},{"issue_number":78484,"pr_number":120692,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T22:13:54+00:00"},{"issue_number":81422,"pr_number":120692,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T22:13:54+00:00"},{"issue_number":81703,"pr_number":120692,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T22:13:54+00:00"},{"issue_number":101938,"pr_number":120692,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T22:13:54+00:00"},{"issue_number":118670,"pr_number":120692,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T22:13:54+00:00"},{"issue_number":118671,"pr_number":120692,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T22:13:54+00:00"},{"issue_number":118755,"pr_number":120692,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T22:13:54+00:00"},{"issue_number":119326,"pr_number":120692,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T22:13:54+00:00"},{"issue_number":119540,"pr_number":120692,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T22:13:54+00:00"}],"members":[{"kind":"issue","number":70108,"title":"[Bug]: Desktop intermittently renders duplicate assistant replies while state.db contains one response","url":null,"state":"closed"},{"kind":"pr","number":70173,"title":"fix(desktop): 修复间歇性重复渲染 assistant 回复的问题","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"53bdcacf17ddb7483633013e76697672fb3106e0","number":0},{"kind":"pr","value":"#70232","number":70232}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":70232,"title":"fix(desktop): stop assistant reply rendering twice after a tool-call turn (#63679)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/src/app/session/hooks/use-message-stream/index.ts","apps/desktop/src/app/session/hooks/use-message-stream/interim-sealing.test.tsx"]},{"kind":"pr","number":120692,"title":"fix(desktop): transcript-render sweep — no duplicate or vanishing replies with partial receipts, failed turns, steers, reasoning-only streams","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/src/app/chat/composer/hooks/use-composer-submit.test.tsx","apps/desktop/src/app/chat/composer/hooks/use-composer-submit.ts","apps/desktop/src/app/contrib/hooks/folded-tool-turn-refresh.test.tsx","apps/desktop/src/app/session/hooks/use-message-stream/folded-segment-refresh.test.tsx","apps/desktop/src/app/session/hooks/use-message-stream/index.ts","apps/desktop/src/app/session/hooks/use-message-stream/session-info-side-effects.test.tsx","apps/desktop/src/app/session/hooks/use-session-actions/utils.test.ts","apps/desktop/src/app/session/hooks/use-session-actions/utils.ts","apps/desktop/src/lib/chat-messages/reconciliation.test.ts","apps/desktop/src/lib/chat-messages/reconciliation.ts"]}],"trust":{"default_tier":"verified","includes_suggested":false}}