{"repo":"NousResearch/hermes-agent","public_id":"92687","display_label":"Bot Chat canonical session orphan reap and resurrection","summary":"These items concern a bug where the WebSocket orphan reaper archives the canonical Bot Chat session and it is not restored on reopen, causing new transient sessions to be created each time. The work addresses both the reaper behavior and the resurrection logic for recoverable archival cases.","subsystem":null,"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":93361,"merged_at":"2026-08-24T00:43:40+00:00"},"resolution":{"state":"resolved","by":"pr-93217"},"freshness":{"state":"verified","last_verified_at":"2026-08-24T00:43:40+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":44045,"pr_number":93361,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-24T00:43:40+00:00"},{"issue_number":65194,"pr_number":93361,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-24T00:43:40+00:00"},{"issue_number":83716,"pr_number":93361,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-24T00:43:40+00:00"},{"issue_number":84326,"pr_number":93217,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-23T22:05:52+00:00"},{"issue_number":84326,"pr_number":93361,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-24T00:43:40+00:00"},{"issue_number":85578,"pr_number":93361,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-24T00:43:40+00:00"},{"issue_number":85834,"pr_number":93361,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-24T00:43:40+00:00"},{"issue_number":89083,"pr_number":93361,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-24T00:43:40+00:00"},{"issue_number":90428,"pr_number":93361,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-24T00:43:40+00:00"},{"issue_number":91276,"pr_number":93361,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-24T00:43:40+00:00"},{"issue_number":92687,"pr_number":93217,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-23T22:05:52+00:00"},{"issue_number":92687,"pr_number":93361,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-24T00:43:40+00:00"}],"members":[{"kind":"issue","number":92687,"title":"Bot Mode canonical 'Bot Chat' archived by ws_orphan_reap is not resurrected on reopen — every click creates a new transient session","url":null,"state":"closed"},{"kind":"pr","number":93077,"title":"fix(gateway): ws-orphan reaper leaves the canonical Bot Chat resumable","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#92687","number":92687},{"kind":"pr","value":"#93217","number":93217},{"kind":"pr","value":"#93361","number":93361}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":93217,"title":"fix(bot-mode): resurrect canonical Bot Chat archived by recoverable reasons on reopen (#92687)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["gateway/platforms/api_server.py","hermes_state.py","hermes_state_common.py","tests/tui_gateway/test_profiles_list_canonical_session.py","tui_gateway/methods_profiles.py","tui_gateway/methods_session.py"]},{"kind":"pr","number":93361,"title":"fix(sessions): reconnect no longer strands or storms sessions — reap loop broken, owner-routed RPCs (8 salvages, #91276 cluster)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/electron/main.ts","apps/desktop/electron/profile-session-routing.test.ts","apps/desktop/electron/profile-session-routing.ts","apps/desktop/src/app/chat/session-tile.test.ts","apps/desktop/src/app/chat/session-tile.tsx","apps/desktop/src/app/contrib/hooks/use-session-tile-delegate.test.ts","apps/desktop/src/app/contrib/hooks/use-session-tile-delegate.ts","apps/desktop/src/app/contrib/wiring.tsx","apps/desktop/src/app/gateway/hooks/use-gateway-boot.test.tsx","apps/desktop/src/app/gateway/hooks/use-gateway-boot.ts","apps/desktop/src/app/session/hooks/use-prompt-actions/index.test.tsx","apps/desktop/src/app/session/hooks/use-prompt-actions/resolve-target-session.ts","apps/desktop/src/app/session/hooks/use-prompt-actions/single-flight-resume.test.ts","apps/desktop/src/app/session/hooks/use-prompt-actions/single-flight-resume.ts","apps/desktop/src/app/session/hooks/use-prompt-actions/submit.ts","apps/desktop/src/app/session/hooks/use-prompt-actions/utils.ts","apps/desktop/src/app/session/hooks/use-session-actions/index.ts","apps/desktop/src/components/assistant-ui/tool/approval.tsx","apps/desktop/src/store/gateway-connection-lifecycle.test.ts","apps/desktop/src/store/gateway.ts","apps/desktop/src/store/native-notifications.ts","apps/desktop/src/store/session-request-router.test.ts","apps/desktop/src/store/session-request-router.ts","apps/desktop/src/store/session-states.test.ts","apps/desktop/src/store/session-states.ts","apps/desktop/src/store/session.test.ts","apps/desktop/src/store/session.ts","hermes_cli/config_defaults.py","hermes_cli/web_server.py","hermes_state_common.py","tests/test_tui_gateway_server.py","tests/test_ws_keepalive_config.py","tests/tui_gateway/test_protocol.py","tests/tui_gateway/test_session_resume_db_ownership.py","tui_gateway/methods_prompt.py","tui_gateway/methods_session.py","tui_gateway/server.py","website/docs/user-guide/configuration.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}