{"repo":"NousResearch/hermes-agent","public_id":"10048","display_label":"Plugin lifecycle hooks timeout and async execution","summary":"A bug was identified where plugin lifecycle hooks run synchronously on the hot path with no deadline, and related fixes aim to bound hook callback execution to prevent blocking.","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":93824,"merged_at":"2026-08-27T10:43:46+00:00"},"resolution":{"state":"resolved","by":"pr-93824"},"freshness":{"state":"verified","last_verified_at":"2026-08-27T10:43:46+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":10048,"pr_number":93824,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-27T10:43:46+00:00"},{"issue_number":76821,"pr_number":93824,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-27T10:43:46+00:00"}],"members":[{"kind":"issue","number":10048,"title":"[Bug]: Plugin lifecycle hooks run synchronously on the turn hot path with no deadline","url":null,"state":"closed"},{"kind":"pr","number":39751,"title":"fix(plugins): bound lifecycle hook execution on hot paths (#10048)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#93824","number":93824},{"kind":"pr","value":"#85125","number":85125},{"kind":"pr","value":"#76821","number":76821},{"kind":"pr","value":"#10048","number":10048}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":76822,"title":"fix(hermes_cli): bound plugin hook callbacks without blocking on timeout","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#93824","number":93824},{"kind":"pr","value":"#85125","number":85125}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":93824,"title":"fix(hermes_cli): bound plugin hook callbacks without blocking on timeout (#85125 2d, salvage of #76822)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/config_defaults.py","hermes_cli/plugins.py","hermes_cli/web_server.py","tests/agent/test_subagent_stop_hook.py","tests/hermes_cli/test_plugins.py","website/docs/user-guide/features/hooks.md","website/docs/user-guide/features/plugins.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}