{"repo":"NousResearch/hermes-agent","public_id":"118233","display_label":"Multiplexed gateway lifecycle notices reach wrong profiles","summary":"These items concern a bug where session lifecycle events (startup, shutdown notifications) in a multiplexed gateway are delivered only to the launch profile's home channels rather than to the routed or served profiles' home channels. The work involves identifying the incorrect binding behavior and notifying served profiles on shutdown.","subsystem":null,"counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":126157,"merged_at":"2026-09-28T11:34:30+00:00"},"resolution":{"state":"resolved","by":"pr-126157"},"freshness":{"state":"verified","last_verified_at":"2026-09-28T11:34:30+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":101134,"pr_number":126157,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T11:34:30+00:00"},{"issue_number":118233,"pr_number":126157,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T11:34:30+00:00"},{"issue_number":118862,"pr_number":126157,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T11:34:30+00:00"},{"issue_number":119121,"pr_number":126157,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T11:34:30+00:00"},{"issue_number":120212,"pr_number":126157,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T11:34:30+00:00"},{"issue_number":123584,"pr_number":126157,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T11:34:30+00:00"},{"issue_number":123618,"pr_number":126157,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T11:34:30+00:00"},{"issue_number":123989,"pr_number":126157,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T11:34:30+00:00"}],"members":[{"kind":"issue","number":118233,"title":"Multiplexed gateway: lifecycle notices (shutdown / \"Gateway online\") reach only the launch profile's home channels, never served profiles'","url":null,"state":"closed"},{"kind":"pr","number":118239,"title":"fix(gateway): notify served profiles on shutdown","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#126157","number":126157},{"kind":"pr","value":"#118233","number":118233}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":126157,"title":"Multiplexed gateway: session lifecycle paths bind to the routed profile's home, not the launch profile (#123584 #123618 #123989 #118233 #118862 #101134 #119121 #120212)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["contributors/emails/[redacted:email]","gateway/platforms/api_server.py","gateway/platforms/api_server_openai_routes.py","gateway/platforms/base.py","gateway/run.py","gateway/run_inbound.py","gateway/run_notifications.py","gateway/run_shutdown.py","gateway/run_turn_runner.py","gateway/session_db_recovery.py","gateway/session_lifecycle.py","hermes_state_gateway.py","tests/gateway/test_api_server.py","tests/gateway/test_inbound_media_profile_scope.py","tests/gateway/test_multiplex_notice_egress_profile_adapter.py","tests/gateway/test_multiplex_session_db_profile_scope.py","tests/gateway/test_planned_restart_notice_multiplex.py","tests/gateway/test_profile_spool_recovery.py","tests/gateway/test_session_db_handle_sharing.py","tests/hermes_state/test_hermes_state.py","tests/hermes_state/test_orphan_gateway_session_repair.py","tests/tools/test_docker_session_isolation.py","tests/tools/test_zombie_process_cleanup.py","tests/tui_gateway/test_history_inline_images.py","tests/tui_gateway/test_resume_child_run_profile_scope.py","tests/tui_gateway/test_resume_live_profile_scope.py","tests/tui_gateway/test_session_cwd_profile_key.py","tests/tui_gateway/test_session_db_ownership_teardown.py","tests/tui_gateway/test_session_resume_db_ownership.py","tests/tui_gateway/test_show_reasoning_display_gate.py","tests/tui_gateway/test_subagent_child_mirror.py","tools/terminal_tool.py","tui_gateway/agent_callbacks.py","tui_gateway/methods_prompt.py","tui_gateway/methods_session.py","tui_gateway/server.py","tui_gateway/session_workdir.py","tui_gateway/tool_progress.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}