{"repo":"NousResearch/hermes-agent","public_id":"119923","display_label":"Email routing bug fixes reaching the gateway","summary":"These items address a bug where email pairing, decline, and gateway grant requests were dropped by the adapter before reaching the gateway. The fix ensures those messages are correctly routed through to the gateway layer.","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":120087,"merged_at":"2026-09-23T14:48:33+00:00"},"resolution":{"state":"resolved","by":"pr-120087"},"freshness":{"state":"verified","last_verified_at":"2026-09-23T14:48:33+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":119598,"pr_number":120087,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T14:48:33+00:00"},{"issue_number":119918,"pr_number":120087,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T14:48:33+00:00"},{"issue_number":119923,"pr_number":120087,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T14:48:33+00:00"},{"issue_number":119948,"pr_number":120087,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T14:48:33+00:00"},{"issue_number":119991,"pr_number":120087,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T14:48:33+00:00"}],"members":[{"kind":"issue","number":119923,"title":"[Bug]: Email pairing and decline never answer, and GATEWAY_ALLOWED_USERS never admits a sender, because the adapter drops the mail before the gateway sees it","url":null,"state":"closed"},{"kind":"pr","number":119924,"title":"fix(email): pairing, decline and gateway grants reach the gateway instead of dying in the adapter pre-gate","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"38d86b0749","number":0},{"kind":"pr","value":"#120087","number":120087}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":120087,"title":"gateway: launchd install honours --no-start-now, drain cap sees the launchd label, /api/status ports match owned platforms, dashboard shows server error detail, email pairing/decline reach the gateway (#119948 #119598 #119918 #119991 #119923; salvage #119949 #119607 #119920 #119992 #119924)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["gateway/control_socket.py","gateway/restart.py","hermes_cli/gateway.py","hermes_cli/gateway_launchd.py","hermes_cli/gateway_setup_wizard.py","hermes_cli/stderr_timestamp.py","hermes_cli/web_server_gateway.py","plugins/platforms/email/adapter.py","tests/gateway/test_adapter_authz_secret_scope.py","tests/gateway/test_email.py","tests/gateway/test_email_secret_scope.py","tests/gateway/test_launchd_exit_timeout_drain_cap.py","tests/hermes_cli/test_launchd_install_start_now.py","tests/hermes_cli/test_stderr_timestamp.py","tests/hermes_cli/test_web_server_gateway_topology.py","web/src/lib/api-error.test.ts","web/src/lib/api-error.ts","website/docs/user-guide/messaging/email.md","website/docs/user-guide/messaging/index.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}