Bug Description
On the Hermes variant, saving settings from the Memory Viewer overwrites viewer.port in ~/.hermes/memos-plugin/config.yaml with the UI default 18799 (the OpenClaw port). Hermes hardcodes its viewer port to 18800 (the bridge connects there), so after a save the daemon listens on a different port and the bridge/stdio link breaks until the config is fixed by hand.
Observed side effects of one save: viewer.port changed 18800 -> 18799, and a placeholder embedding.endpoint: "mem os" appeared.
Steps to Reproduce
- Install memos-local-plugin into Hermes (v2.0.12).
- Open the Memory Viewer at :18800 → Settings.
- Change any setting and save (or click restart after save).
Expected Behavior
Saving settings must not clobber fields the user did not edit — especially viewer.port, which the Hermes adapter owns.
Actual Behavior
PATCH /api/v1/config accepts the whole dirty form (viewer/src/views/SettingsView.tsx:139) and the backend writes it verbatim, so untouched fields fall back to UI defaults (e.g. 18799).
Suggested Fix
- Backend: protect/ignore adapter-owned keys (
viewer.port, agent identity) on PATCH /api/v1/config, or merge with the existing config instead of replacing.
- Frontend: do not submit unchanged fields.
Environment
- OS: Windows
- Plugin: memos-local-plugin 2.0.12 (Hermes adapter)
Bug Description
On the Hermes variant, saving settings from the Memory Viewer overwrites
viewer.portin~/.hermes/memos-plugin/config.yamlwith the UI default18799(the OpenClaw port). Hermes hardcodes its viewer port to18800(the bridge connects there), so after a save the daemon listens on a different port and the bridge/stdio link breaks until the config is fixed by hand.Observed side effects of one save:
viewer.portchanged18800 -> 18799, and a placeholderembedding.endpoint: "mem os"appeared.Steps to Reproduce
Expected Behavior
Saving settings must not clobber fields the user did not edit — especially
viewer.port, which the Hermes adapter owns.Actual Behavior
PATCH /api/v1/configaccepts the whole dirty form (viewer/src/views/SettingsView.tsx:139) and the backend writes it verbatim, so untouched fields fall back to UI defaults (e.g.18799).Suggested Fix
viewer.port, agent identity) onPATCH /api/v1/config, or merge with the existing config instead of replacing.Environment