{"repo":"NousResearch/hermes-agent","public_id":"91503","display_label":"Desktop plugin reload path handling fixes","summary":"These issues and pull requests address bugs in the desktop application where manual plugin rescans or reloads fail to correctly handle known disk paths, particularly after atomic install replacements. The work focuses on making runtime plugin reload behavior more reliable and authoritative.","subsystem":"apps/desktop","counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":118813,"merged_at":"2026-09-22T05:39:36+00:00"},"resolution":{"state":"resolved","by":"pr-118813"},"freshness":{"state":"verified","last_verified_at":"2026-09-22T05:39:36+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":86161,"pr_number":118813,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-22T05:39:36+00:00"},{"issue_number":91503,"pr_number":118813,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-22T05:39:36+00:00"},{"issue_number":98861,"pr_number":118813,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-22T05:39:36+00:00"}],"members":[{"kind":"issue","number":91503,"title":"Desktop: manual plugin reload skips known paths after atomic install replacement","url":null,"state":"closed"},{"kind":"pr","number":91648,"title":"fix(desktop): reload known disk plugin paths on manual rescan (#91503)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#118813","number":118813}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":92011,"title":"fix(desktop): make runtime plugin reloads authoritative","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#91648","number":91648},{"kind":"pr","value":"#91503","number":91503}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":92886,"title":"fix(desktop): reload runtime plugins after atomic replacement","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#118813","number":118813}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":118813,"title":"Desktop plugins: register() failures roll back, remote imports refused, reload re-reads replaced files, honest sandbox docs (#91503, #98861, #86161)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/src/contrib/runtime-loader.test.ts","apps/desktop/src/contrib/runtime-loader.ts","apps/desktop/src/plugins/hermes-bots/avatar-image.test.ts","apps/desktop/src/plugins/hermes-bots/avatar-image.ts","apps/desktop/src/store/agent-plugins.test.ts","apps/desktop/src/store/agent-plugins.ts","hermes_cli/plugin_validate_desktop.py","tests/hermes_cli/test_plugin_validate.py","website/docs/developer-guide/desktop-plugin-sdk.md","website/docs/user-guide/desktop.md","website/docs/user-guide/features/plugin-catalog.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}