# NousResearch/hermes-agent · Gateway startup/restart home-channel notification feature and fixes

## Open now

- 5 issues, 5 PRs open on GitHub.
- #27870: \[Feature\]: send startup notification to home channels when gateway first comes online
- #47179: fix(gateway): launchd restart doesn't send home-channel startup notification
- #52567: fix(gateway): restart-notification marker missing from both launchd and systemd SIGTERM fallback paths
- #62512: \[Bug\]: Gateway startup notification not sent.
- #66087: \[Bug\]: "Gateway online" home-channel notice never fires after a plain SIGTERM restart (service restart, kickstart, reboot)
- PR #23771: feat(plugins): add gateway:startup hook for plugin system
- PR #43199: fix(launchd): write restart-notification marker in fallback kill path
- PR #52418: feat(mcp): bearer_refresh_cmd — heal 401-during-reconnect without a service restart
- PR #55008: feat(gateway): home_channel_startup_notification config — fire startup ping on unplanned restarts (closes #27870)
- PR #62546: fix(gateway): send startup notification on manual/crash restart

These issues and PRs cover adding a 'gateway online' startup notification to home channels and a plugin hook, then iteratively fixing cases where the notification or restart-marker was not written across various restart paths (launchd, systemd, SIGTERM, cold starts).

## TL;DR

- 20 member(s): 5 open issue(s), 2 closed issue(s), 5 open PR(s), 0 merged PR(s), 8 PR(s) closed without merging.
- No fix has been merged to main; one or more PRs were attempted (see below).
- **Recommended:** review the prior/competing PR(s) below. A fix was attempted but not merged; your case may extend or revive that work.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `unresolved`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_PARTIAL`): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
- Members outside that structural core may belong to a different underlying problem.
- Pairwise link density `0.08`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Open related issues

- #27870: \[Feature\]: send startup notification to home channels when gateway first comes online
- #47179: fix(gateway): launchd restart doesn't send home-channel startup notification
- #52567: fix(gateway): restart-notification marker missing from both launchd and systemd SIGTERM fallback paths
- #62512: \[Bug\]: Gateway startup notification not sent.
- #66087: \[Bug\]: "Gateway online" home-channel notice never fires after a plain SIGTERM restart (service restart, kickstart, reboot)

## Closed / duplicate issues

- #14931: feat(gateway): make BOOT.md startup/restart report discoverable by default
- #23747: Feature Request: Add gateway:startup hook event

## Prior & competing PRs

- **#52565: fix(gateway): write restart-notification marker in all SIGTERM fallback paths (launchd + systemd)**. closed without merge · fix tier `suggested`
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `#43199`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#52568: fix(gateway): write restart-notification marker in launchd and systemd SIGTERM fallback paths**. closed without merge · fix tier `suggested`
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `#52565`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#62523: fix(gateway): send startup notification on every gateway start, not only planned restarts**. closed without merge · fix tier `suggested`
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `#24271`, `#55008`, `#48360`, `#27278`, `#27870`, `#62512`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#62742: fix(gateway): send startup notification on cold starts too**. closed without merge · fix tier `suggested`
  - maintainer direction: category `superseded_by_pr`; implication `superseded`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#23771: feat(plugins): add gateway:startup hook for plugin system**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - files: `.gitignore`, `gateway/run.py`, `hermes_cli/plugins.py`
- **#43199: fix(launchd): write restart-notification marker in fallback kill path**. open
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#52568`, `#52567`
  - files: `hermes_cli/gateway.py`
- **#52418: feat(mcp): bearer_refresh_cmd — heal 401-during-reconnect without a service restart**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `#55008`, `#27870`, `#55018`, `#57037`
  - files: `tests/tools/test_mcp_bearer_refresh_cmd.py`, `tests/tools/test_mcp_bearer_refresh_cmd_run_loop.py`, `tools/mcp_tool.py`, `website/docs/reference/mcp-config-reference.md`
- **#55008: feat(gateway): home_channel_startup_notification config — fire startup ping on unplanned restarts (closes #27870)**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - files: `gateway/config.py`, `gateway/run.py`, `tests/gateway/test_config.py`, `tests/gateway/test_restart_notification.py`, `website/docs/user-guide/messaging/index.md`
- **#59074: fix(gateway): write restart-notification marker in all restart paths (launchd + systemd CLI + systemd direct)**. closed without merge
  - maintainer direction: category `silent_close`; implication `active`
- **#62546: fix(gateway): send startup notification on manual/crash restart**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - files: `gateway/run.py`, `tests/gateway/test_startup_notification_manual_restart.py`
- **#63013: fix(gateway): send startup notification on fresh gateway start**. closed without merge
  - maintainer direction: category `superseded_by_pr`; implication `superseded`
- **#66089: fix(gateway): announce "Gateway online" after any graceful shutdown**. closed without merge
  - maintainer direction: category `partial_fix`; implication `needs_llm`; refs `4eb57f78a5d1`, `#66087`, `#66089`, `#76710`, `#66089`, `#76710`, `#66089`, `#76710`, `#1`, `#1`, `#15803`, `#14532`, `#6`, `#1`, `#9`, `#374151`, `#4338`, `#66087`, `#66089`
- **#76710: fix(gateway): restore notices after external restarts**. closed without merge
  - maintainer direction: category `uncategorized`; implication `needs_llm`

## Fix status

- No merged fix on record.
- Subsystem: `gateway`
