{"repo":"NousResearch/hermes-agent","public_id":"120104","display_label":"Fix duplicate assistant reply rendering on desktop","summary":"A bug caused the desktop client to render the same assistant reply twice under certain streaming or backfill conditions. These changes address deduplication of interim deliveries, redelivered messages, and backfilled folds to prevent double rendering.","subsystem":"apps/desktop","counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":2,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":120290},"resolution":{"state":"resolved","by":"pr-126625"},"freshness":{"state":"verified","last_verified_at":"2026-09-28T16:31:48+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":93926,"pr_number":126625,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":120104,"pr_number":120290,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":120104,"pr_number":126625,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":120104,"title":"[Bug]: Desktop renders the same assistant reply twice (duplicate render of a single response)","url":null,"state":"closed"},{"kind":"pr","number":120145,"title":"fix(desktop): collapse duplicate interim delivery into one bubble","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#93962","number":93962},{"kind":"pr","value":"#120290","number":120290}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":120290,"title":"Desktop no longer shows a reply twice when you switch back to a chat mid-stream","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/src/app/session/hooks/use-session-actions/utils.test.ts","apps/desktop/src/app/session/hooks/use-session-actions/utils.ts"]},{"kind":"pr","number":124472,"title":"fix(desktop): dedupe backfilled folds by final-reply part row","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"274117bd4c5e","number":0},{"kind":"commit","value":"f9829a4887e6","number":0},{"kind":"commit","value":"11d5eb81a3aa","number":0},{"kind":"pr","value":"#123801","number":123801}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":126625,"title":"fix(desktop): a redelivered interim or long final no longer renders twice","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/src/app/session/hooks/use-message-stream/duplicate-delivery-120104.test.tsx","apps/desktop/src/app/session/hooks/use-message-stream/index.ts","apps/desktop/src/app/session/hooks/use-message-stream/interim-redelivery.test.tsx","apps/desktop/src/app/session/hooks/use-message-stream/interim-sealing.test.tsx"]}],"trust":{"default_tier":"verified","includes_suggested":false}}