{"repo":"NousResearch/hermes-agent","public_id":"119598","display_label":"launchd gateway label and drain cap fixes","summary":"These items address bugs where the launchd drain cap was not applying because the gateway child process could not correctly resolve its launchd job label, along with related gateway installation and API fixes.","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":119598,"title":"launchd drain cap never applies: gateway child sees XPC_SERVICE_NAME=0","url":null,"state":"closed"},{"kind":"pr","number":119607,"title":"fix(gateway): resolve the launchd drain cap's job label through the wrapper","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"2e84e39393","number":0},{"kind":"pr","value":"#120087","number":120087}],"category":"superseded_by_pr","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}}