# NousResearch/hermes-agent · Desktop config overwrite and runtime discovery fixes

## Open now

- 0 issues, 1 PR open on GitHub.
- PR #109364: fix(dashboard): refuse a defaults-regression PUT /api/config over a populated config

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.

## TL;DR

- 6 member(s): 0 open issue(s), 1 closed issue(s), 1 open PR(s), 2 merged PR(s), 2 PR(s) closed without merging.
- A fix was merged to main in PR #118327. Verify it addresses your case.
- **Recommended:** read PR #118327 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `resolved` · deciding PR(s): `pr-111184`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.40`: 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.

## Closed / duplicate issues

- #109357: \[Bug\]: Desktop writes the client laptop's factory config over a remote host's config.yaml (connection switch spawns a local backend)

## Prior & competing PRs

- **#111184: Desktop runtime discovery runs off the main event loop (#109357, salvage #105836)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`
  - files: `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`
- **#118327: fix(desktop): bind config writes to the route the record was read from (salvage of #109363)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`
  - files: `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`
- **#109363: fix(desktop): bind config writes to the config-read route**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `#118327`
- **#109364: fix(dashboard): refuse a defaults-regression PUT /api/config over a populated config**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - files: `apps/desktop/src/api/config.ts`, `apps/desktop/src/app/settings/index.tsx`, `hermes_cli/web_models.py`, `hermes_cli/web_routers/config_env.py`, `tests/hermes_cli/test_config_defaults_regression.py`
- **#127345: fix(desktop): prevent cross-machine config overwrite via UI defaults reversion**. closed without merge
  - maintainer direction: category `uncategorized`; implication `needs_llm`

## Fix status

- Merged to main in PR #118327 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-09-21`.
- Subsystem: `dashboard`
