{"repo":"NousResearch/hermes-agent","public_id":"60036","display_label":"Shell hooks lost after plugin force-reload","summary":"These issues and PRs address a bug where shell hooks are silently dropped when a plugin is force-reloaded, and propose re-registering them afterward.","subsystem":"agent","counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":84979,"merged_at":"2026-08-13T02:41:00+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-08-13T02:41:00+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":60036,"pr_number":84979,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-13T02:41:00+00:00"}],"members":[{"kind":"issue","number":60036,"title":"Bug: Shell hooks silently lost after plugin force-reload","url":null,"state":"closed"},{"kind":"pr","number":60037,"title":"fix(plugins): re-register shell hooks after force-reload","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"8be9c76f8c0","number":0},{"kind":"commit","value":"600b9c7e7e4","number":0},{"kind":"pr","value":"#60036","number":60036},{"kind":"pr","value":"#84979","number":84979},{"kind":"pr","value":"#92682","number":92682},{"kind":"pr","value":"#59363","number":59363},{"kind":"pr","value":"#59948","number":59948},{"kind":"pr","value":"#59963","number":59963},{"kind":"pr","value":"#59967","number":59967},{"kind":"pr","value":"#59970","number":59970},{"kind":"pr","value":"#59985","number":59985},{"kind":"pr","value":"#59989","number":59989},{"kind":"pr","value":"#60000","number":60000},{"kind":"pr","value":"#60001","number":60001},{"kind":"pr","value":"#60003","number":60003},{"kind":"pr","value":"#60004","number":60004},{"kind":"pr","value":"#60018","number":60018},{"kind":"pr","value":"#60031","number":60031}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":60267,"title":"fix(plugins): re-register config shell hooks after plugin force-reload (#60036)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"8be9c76f8c0","number":0},{"kind":"commit","value":"600b9c7e7e4","number":0},{"kind":"pr","value":"#84979","number":84979},{"kind":"pr","value":"#92682","number":92682}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":84979,"title":"fix(plugins): hook delivery parity across all surfaces + symmetric force-reload","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/shell_hooks.py","hermes_cli/plugins.py","tests/hermes_cli/test_plugins.py","tests/hermes_cli/test_relay_shared_metrics_runtime.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}