{"repo":"NousResearch/hermes-agent","public_id":"122697","display_label":"Bot mode dependency and update reliability fixes","summary":"These items address a bug where an interrupted update leaves macOS desktop bot mode missing required modules, and introduce fixes to verify startup dependencies before completing updates and improve crash classification during admission.","subsystem":null,"counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":128992,"merged_at":"2026-09-30T19:40:58+00:00"},"resolution":{"state":"resolved","by":"pr-128992"},"freshness":{"state":"verified","last_verified_at":"2026-09-30T19:40:58+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":120810,"pr_number":128992,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-30T19:40:58+00:00"},{"issue_number":122697,"pr_number":128992,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-30T19:40:58+00:00"},{"issue_number":123034,"pr_number":128992,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-30T19:40:58+00:00"},{"issue_number":125899,"pr_number":128992,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-30T19:40:58+00:00"}],"members":[{"kind":"issue","number":122697,"title":"[Bug]: macOS Desktop Bot Mode: No module named 'ruamel' after interrupted update","url":null,"state":"closed"},{"kind":"pr","number":123052,"title":"fix(update): verify and repair startup dependencies before marking update complete (#122697)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#122697","number":122697},{"kind":"pr","value":"#128992","number":128992}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":125865,"title":"fix(bot-mode): spawn the delivery runner through the install launcher; classify admission crashes honestly","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#125926","number":125926},{"kind":"pr","value":"#125308","number":125308},{"kind":"pr","value":"#123070","number":123070},{"kind":"pr","value":"#122945","number":122945}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":128992,"title":"fix(bot-mode): make bot-to-bot messaging, Bot Chat opens, and lease handoff actually work","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/src/app/open-session.test.ts","apps/desktop/src/app/open-session.ts","apps/desktop/src/plugins/hermes-bots/bot-row-opens-canonical-chat.test.ts","apps/desktop/src/plugins/hermes-bots/canonical-chat-expect-history.test.ts","apps/desktop/src/plugins/hermes-bots/canonical-chat-stale-tiles.test.ts","apps/desktop/src/plugins/hermes-bots/canonical-chat.ts","apps/desktop/src/plugins/hermes-bots/cold-bot-switch-pending.test.ts","apps/desktop/src/plugins/hermes-bots/recent-session.test.ts","apps/desktop/src/plugins/hermes-bots/recent-session.ts","apps/desktop/src/plugins/hermes-bots/relay.test.ts","apps/desktop/src/plugins/hermes-bots/roster-actions.ts","apps/desktop/src/plugins/hermes-bots/types.ts","apps/desktop/src/sdk/index.ts","apps/desktop/src/store/session-states.test.ts","apps/desktop/src/store/session-states.ts","apps/shared/src/gateway-contract.generated.ts","apps/shared/src/gateway-contract.openrpc.json","contributors/emails/[redacted:email]","hermes_cli/cli_shutdown.py","hermes_state_messages.py","locales/_keys.desktop.json","tests/hermes_cli/test_single_query_session_finalize.py","tests/tools/test_bot_live_owner_delivery.py","tests/tools/test_bot_mode_dm.py","tests/tools/test_oneshot_completion_linger.py","tests/tui_gateway/test_closed_session_turn_lease.py","tests/tui_gateway/test_profile_rebuild_commit.py","tests/tui_gateway/test_profiles_list_canonical_session.py","tools/bot_live_delivery.py","tools/bot_mode_dm.py","tui_gateway/agent_callbacks.py","tui_gateway/contracts/profiles_vault_complete_foreign_subagents.py","tui_gateway/contracts/sessions.py","tui_gateway/methods_profiles.py","tui_gateway/methods_session.py","tui_gateway/prompt_turn.py","website/docs/user-guide/bot-mode.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}