{"repo":"NousResearch/hermes-agent","public_id":"81114","display_label":"Background process exit and status tracking fixes","summary":"These items address bugs where background or child processes that have exited are not properly detected or cleaned up, and where desktop status indicators continue showing tasks as running after completion. The work spans process listing reconciliation and UI status row retirement.","subsystem":"agent","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":105548,"merged_at":null},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-10-01T04:06:47+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":48339,"pr_number":105548,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":null},{"issue_number":75505,"pr_number":127272,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":null},{"issue_number":81114,"pr_number":105548,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":null},{"issue_number":81114,"pr_number":127272,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":null}],"members":[{"kind":"issue","number":81114,"title":"Desktop status stack: completed background tasks stay 'running' indefinitely; chat view doesn't render async results until a new message is sent","url":null,"state":"closed"},{"kind":"pr","number":81385,"title":"fix(process): reconcile background exits during listing","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"41380ccef90f","number":0},{"kind":"pr","value":"#105548","number":105548}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":105548,"title":"fix(process): list refreshes no longer leave exited children running (salvage #60506, #81385)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["tests/tools/test_process_registry_list_exit.py","tools/process_registry.py"]},{"kind":"pr","number":127272,"title":"fix(desktop): stop interrupted sessions and stale history from pinning subagent rows","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/agents/index.tsx","apps/desktop/src/app/session/hooks/use-message-stream/gateway-event/tools-subagent-interrupt.test.ts","apps/desktop/src/app/session/hooks/use-message-stream/gateway-event/tools.ts","apps/desktop/src/app/session/hooks/use-message-stream/index.ts","apps/desktop/src/app/session/hooks/use-message-stream/interrupted-status-sync.test.tsx","apps/desktop/src/app/shell/hooks/use-statusbar-items.tsx","apps/desktop/src/store/subagents.test.ts","apps/desktop/src/store/subagents.ts"]},{"kind":"pr","number":128608,"title":"fix(desktop): retire status rows on completions after Stop","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#127272","number":127272},{"kind":"pr","value":"#81114","number":81114},{"kind":"pr","value":"#81114","number":81114},{"kind":"pr","value":"#127272","number":127272},{"kind":"pr","value":"#127272","number":127272},{"kind":"pr","value":"#81114","number":81114},{"kind":"pr","value":"#127272","number":127272}],"category":"superseded_by_pr","implication":"superseded"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}