{"repo":"NousResearch/hermes-agent","public_id":"119326","display_label":"Fix duplicate or vanishing chat rows on desktop","summary":"These items address a desktop bug where chat transcript rows—including attachments, errored turns, and partial receipts—were incorrectly duplicated or dropped during hydration and rendering. The fixes involve reconciling rows by durable ID and improving transcript-render sweep logic.","subsystem":"apps/desktop","counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":1,"closed_issues":1,"merged_prs":1,"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.6666666666666666},"fix_edges":[{"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":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":119326,"title":"[Bug]: Desktop — hydration re-appends stale local messages below the newest turn (attachment rows / errored turns)","url":null,"state":"closed"},{"kind":"pr","number":119332,"title":"fix(desktop): reconcile hydrated chat rows by durable row id","url":null,"state":"open","close_reason":{"category":"silent_close","implication":"active"},"merged":false},{"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}}