{"repo":"NousResearch/hermes-agent","public_id":"122416","display_label":"Desktop falsely drops quiet tool-call turns","summary":"A bug where long, silent tool-call turns are incorrectly marked as 'connection dropped' on desktop, particularly when the window is unfocused or on battery. Fixes involve checking backend liveness and a turn.alive signal to confirm quiet turns are still running.","subsystem":"gateway","counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":1,"closed_issues":1,"merged_prs":1,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":128401,"merged_at":"2026-09-29T21:24:08+00:00"},"resolution":{"state":"resolved","by":"pr-128401"},"freshness":{"state":"verified","last_verified_at":"2026-09-29T21:24:08+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":122416,"pr_number":128401,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-29T21:24:08+00:00"},{"issue_number":125306,"pr_number":128401,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-29T21:24:08+00:00"},{"issue_number":127974,"pr_number":128401,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-29T21:24:08+00:00"}],"members":[{"kind":"issue","number":122416,"title":"Desktop: a long quiet tool call is settled as \"connection dropped\" when the window is unfocused or on battery","url":null,"state":"closed"},{"kind":"pr","number":122417,"title":"fix(desktop): ask the backend before settling a silent live turn","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#128401","number":128401},{"kind":"pr","value":"#122416","number":122416}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":128401,"title":"fix(desktop): ask the backend before settling a silent live turn","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.tsx","apps/desktop/src/app/contrib/hooks/use-background-sync.ts","apps/desktop/src/app/contrib/hooks/use-session-tile-delegate.ts","apps/desktop/src/app/session/hooks/use-message-stream/gateway-event/session-info.ts","apps/desktop/src/app/session/hooks/use-prompt-actions/rewind.test.ts","apps/desktop/src/app/session/hooks/use-prompt-actions/rewind.ts","apps/desktop/src/app/session/hooks/use-prompt-actions/submit.ts","apps/desktop/src/i18n/de.ts","apps/desktop/src/i18n/en.ts","apps/desktop/src/i18n/es.ts","apps/desktop/src/i18n/fr.ts","apps/desktop/src/lib/chat-messages/index.ts","apps/desktop/src/lib/chat-messages/parts.ts","apps/desktop/src/lib/error-surface.ts","apps/desktop/src/store/session-states.ts","apps/desktop/src/store/session-watchdog.test.ts","locales/_keys.desktop.json"]},{"kind":"pr","number":128480,"title":"fix(desktop,gateway): turn.alive liveness for quiet turns, on top of #128401's backend check","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#128528","number":128528},{"kind":"pr","value":"#128401","number":128401}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":128528,"title":"fix(desktop,gateway): tell clients a quiet turn is still running (turn.alive)","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"578a07f90539adb9211d1acf62df09a0b5e4c0fe","number":0},{"kind":"commit","value":"91b17917e60500afc566d669bac9c065a48ed478","number":0}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}