{"repo":"NousResearch/hermes-agent","public_id":"109357","display_label":"Desktop config overwrite and runtime discovery fixes","summary":"These items address a bug where desktop clients could overwrite a remote host's config with local defaults when switching connections, plus a related fix for desktop runtime discovery running off the main event loop.","subsystem":"dashboard","counts":{"members":6,"open_issues":0,"open_issues_distinct":0,"open_prs":1,"closed_issues":1,"merged_prs":2,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":118327,"merged_at":"2026-09-21T16:05:03+00:00"},"resolution":{"state":"resolved","by":"pr-111184"},"freshness":{"state":"verified","last_verified_at":"2026-09-21T16:05:03+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":109357,"pr_number":111184,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-15T05:20:54+00:00"},{"issue_number":109357,"pr_number":118327,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-21T16:05:03+00:00"}],"members":[{"kind":"issue","number":109357,"title":"[Bug]: Desktop writes the client laptop's factory config over a remote host's config.yaml (connection switch spawns a local backend)","url":null,"state":"closed"},{"kind":"pr","number":109363,"title":"fix(desktop): bind config writes to the config-read route","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#118327","number":118327}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":109364,"title":"fix(dashboard): refuse a defaults-regression PUT /api/config over a populated config","url":null,"state":"open","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":111184,"title":"Desktop runtime discovery runs off the main event loop (#109357, salvage #105836)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/electron/backend-claim.ts","apps/desktop/electron/backend-connection-state.ts","apps/desktop/electron/backend-probes.test.ts","apps/desktop/electron/backend-probes.ts","apps/desktop/electron/backend-serve-support.test.ts","apps/desktop/electron/backend-serve-support.ts","apps/desktop/electron/first-run-setup-main-process.test.ts","apps/desktop/electron/local-backend-lifecycle.test.ts","apps/desktop/electron/main.ts","apps/desktop/electron/primary-backend-cancellation.test.ts","apps/desktop/electron/primary-backend-startup.test.ts","apps/desktop/electron/primary-backend-startup.ts","apps/desktop/electron/windows-hermes-path.test.ts","apps/desktop/electron/windows-hermes-path.ts","apps/desktop/src/AGENTS.md"]},{"kind":"pr","number":118327,"title":"fix(desktop): bind config writes to the route the record was read from (salvage of #109363)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/src/api/config-route-binding.test.ts","apps/desktop/src/api/config.ts","apps/desktop/src/app/chat/right-rail/real-profile-consent-dialog.tsx","apps/desktop/src/app/hooks/use-config-record.test.tsx","apps/desktop/src/app/hooks/use-config-record.ts","apps/desktop/src/app/settings/appearance-settings.tsx","apps/desktop/src/app/settings/browser-real-profile-panel.tsx","apps/desktop/src/app/settings/chat-font-setting.test.tsx","apps/desktop/src/app/settings/chat-font-setting.tsx","apps/desktop/src/app/settings/config-settings.test.tsx","apps/desktop/src/app/settings/config-settings.tsx","apps/desktop/src/app/settings/model-settings.test.tsx","apps/desktop/src/app/settings/model-settings.tsx","apps/desktop/src/app/settings/sessions-settings.tsx","apps/desktop/src/app/settings/terminal-font-setting.tsx","apps/desktop/src/app/settings/toolset-config-panel.test.tsx","apps/desktop/src/app/settings/voice-provider-fields.tsx","apps/desktop/src/i18n/context.tsx"]},{"kind":"pr","number":127345,"title":"fix(desktop): prevent cross-machine config overwrite via UI defaults reversion","url":null,"state":"closed","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}