{"repo":"NousResearch/hermes-agent","public_id":"98581","display_label":"Terminal env/backend isolation across multiplexed profiles","summary":"These issues and fixes address a bug where multiplexed profiles share or contaminate each other's terminal environment bridges, backend assignments, and related memos. The work scopes terminal environment setup and backend selection per profile rather than once per process.","subsystem":"environments","counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":108440,"merged_at":"2026-09-11T22:29:16+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-09-11T22:29:16+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":80099,"pr_number":108440,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-11T22:29:16+00:00"},{"issue_number":94200,"pr_number":108440,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-11T22:29:16+00:00"},{"issue_number":98581,"pr_number":108440,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-11T22:29:16+00:00"},{"issue_number":107327,"pr_number":108440,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-11T22:29:16+00:00"},{"issue_number":107422,"pr_number":108440,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-11T22:29:16+00:00"}],"members":[{"kind":"issue","number":98581,"title":"[Bug]: Unified dashboard serves non-default profiles with the wrong terminal backend (docker sandbox escape via terminal tool)","url":null,"state":"closed"},{"kind":"pr","number":85084,"title":"fix: scope terminal backend per multiplexed profile","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"4a7f228e2c1","number":0},{"kind":"pr","value":"#101242","number":101242}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":94206,"title":"fix(tools): scope the terminal env bridge one-shot to the Hermes home","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"a5c801c8dcb","number":0},{"kind":"pr","value":"#108440","number":108440},{"kind":"pr","value":"#107442","number":107442}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":98589,"title":"fix(tools): re-bridge terminal env per profile home, not once per process","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#94206","number":94206},{"kind":"pr","value":"#94200","number":94200},{"kind":"pr","value":"#98581","number":98581}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":108440,"title":"fix(gateway): multiplexed profiles no longer poison each other via config.yaml→env bridges, TERMINAL_* latch and path memos (#80099, #107422, #107327; salvage #100604 #100435 #100448 #91198 #107442 #107335)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["contributors/emails/[redacted:email]","gateway/config_loader.py","gateway/platforms/_shared.py","gateway/platforms/signal.py","gateway/platforms/yuanbao.py","gateway/run.py","gateway/run_inbound.py","gateway/run_notifications.py","plugins/platforms/dingtalk/adapter.py","plugins/platforms/discord/adapter.py","plugins/platforms/feishu/adapter.py","plugins/platforms/matrix/adapter.py","plugins/platforms/slack/adapter.py","plugins/platforms/telegram/adapter.py","plugins/platforms/whatsapp/adapter.py","tests/gateway/test_discord_allow_bots_yaml_config.py","tests/gateway/test_multiplex_process_global_sinks.py","tests/gateway/test_multiplex_yaml_env_bridge_isolation.py","tests/tools/test_env_passthrough.py","tests/tools/test_file_write_safety.py","tests/tools/test_skill_env_passthrough.py","tests/tools/test_terminal_env_bridge.py","tests/tools/test_terminal_scope_multiplex.py","tools/env_passthrough.py","tools/file_tools_write_guards.py","tools/terminal_tool.py","tui_gateway/prompt_turn.py","tui_gateway/server.py","website/docs/user-guide/multi-profile-gateways.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}