{"repo":"NousResearch/hermes-agent","public_id":"121705","display_label":"Gateway slash gating uses wrong profile config","summary":"A bug where the multiplex gateway applies slash access controls (allow_admin_from) from the default or launch profile instead of the profile actually serving the source. Two fixes address reading gating config from the correct routed profile.","subsystem":"gateway","counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":1,"closed_issues":1,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":126145,"merged_at":"2026-09-28T19:23:27+00:00"},"resolution":{"state":"resolved","by":"pr-126145"},"freshness":{"state":"verified","last_verified_at":"2026-09-28T19:23:27+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":120151,"pr_number":126145,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T19:23:27+00:00"},{"issue_number":120481,"pr_number":126145,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T19:23:27+00:00"},{"issue_number":121705,"pr_number":126145,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T19:23:27+00:00"},{"issue_number":125530,"pr_number":126145,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T19:23:27+00:00"},{"issue_number":125974,"pr_number":126145,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T19:23:27+00:00"}],"members":[{"kind":"issue","number":121705,"title":"[Bug]: Multiplex gateway ignores secondary-profile slash gating (allow_admin_from) — policy_for_source uses the default profile's config","url":null,"state":"closed"},{"kind":"pr","number":121722,"title":"fix(gateway): use the routed profile for slash access checks","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#126145","number":126145}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":121731,"title":"fix(gateway): read slash gating from the profile that serves the source","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"327d62664d9af9224409872477cd9cd19f567759","number":0},{"kind":"commit","value":"ca6782850432927f33df4775cb6dd45bb51460d2","number":0},{"kind":"commit","value":"d350422b15863fc4c0b7962b122b625a0271516c","number":0},{"kind":"pr","value":"#121705","number":121705},{"kind":"pr","value":"#121722","number":121722},{"kind":"pr","value":"#121731","number":121731},{"kind":"pr","value":"#87939","number":87939},{"kind":"pr","value":"#81764","number":81764},{"kind":"pr","value":"#86946","number":86946},{"kind":"pr","value":"#75684","number":75684}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":126145,"title":"Served profiles no longer inherit the launch profile's logs, log ownership, slash gating, TTS credentials or skipped .env (#125974 #120151 #121705 #120481 #125530)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/agent_init.py","gateway/run_busy.py","gateway/slash_access.py","gateway/slash_commands.py","gateway/slash_commands_login.py","gateway/slash_commands_session.py","hermes_cli/env_loader.py","hermes_logging.py","tests/agent/test_setup_logging_profile_scope.py","tests/agent/test_skip_background_review.py","tests/gateway/test_multiplex_credential_isolation.py","tests/gateway/test_slash_access_dispatch.py","tests/hermes_cli/test_local_runtime.py","tests/test_hermes_logging.py","tests/tools/test_tts_command_providers.py","tests/tools/test_tts_lifecycle_leases.py","tools/tts_command_provider.py","tools/tts_tool_lifecycle.py","website/docs/user-guide/multi-profile-gateways.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}