mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-01 12:02:05 +00:00
fix(desktop): persist MoA preset add/delete/set-default immediately (#53290)
The desktop MoA settings 'Add preset', 'Set default', and 'Delete' buttons mutated local React state only and never called the save endpoint, so a newly constructed preset vanished on refresh. Each now builds the next config and calls saveMoa() so the change is written to config.yaml via PUT /api/model/moa.
This commit is contained in:
parent
7e101e553b
commit
391090083c
1 changed files with 28 additions and 28 deletions
|
|
@ -772,9 +772,13 @@ export function ModelSettings({ onMainModelChanged }: ModelSettingsProps) {
|
|||
</Select>
|
||||
<Button
|
||||
disabled={applying}
|
||||
onClick={() =>
|
||||
setMoa(prev => prev && { ...prev, default_preset: selectedMoaPreset || prev.default_preset })
|
||||
}
|
||||
onClick={() => {
|
||||
const next: MoaConfigResponse = {
|
||||
...moa,
|
||||
default_preset: selectedMoaPreset || moa.default_preset
|
||||
}
|
||||
void saveMoa(next)
|
||||
}}
|
||||
size="sm"
|
||||
variant="text"
|
||||
>
|
||||
|
|
@ -783,23 +787,21 @@ export function ModelSettings({ onMainModelChanged }: ModelSettingsProps) {
|
|||
<Button
|
||||
disabled={Object.keys(moa.presets).length <= 1 || applying}
|
||||
onClick={() => {
|
||||
setMoa(prev => {
|
||||
if (!prev || Object.keys(prev.presets).length <= 1) {
|
||||
return prev
|
||||
}
|
||||
if (Object.keys(moa.presets).length <= 1) {
|
||||
return
|
||||
}
|
||||
|
||||
const next = { ...prev.presets }
|
||||
delete next[selectedMoaPreset]
|
||||
const fallback = Object.keys(next)[0]
|
||||
|
||||
return {
|
||||
...prev,
|
||||
presets: next,
|
||||
default_preset: prev.default_preset === selectedMoaPreset ? fallback : prev.default_preset,
|
||||
active_preset: prev.active_preset === selectedMoaPreset ? '' : prev.active_preset
|
||||
}
|
||||
})
|
||||
const presets = { ...moa.presets }
|
||||
delete presets[selectedMoaPreset]
|
||||
const fallback = Object.keys(presets)[0]
|
||||
const next: MoaConfigResponse = {
|
||||
...moa,
|
||||
presets,
|
||||
default_preset: moa.default_preset === selectedMoaPreset ? fallback : moa.default_preset,
|
||||
active_preset: moa.active_preset === selectedMoaPreset ? '' : moa.active_preset
|
||||
}
|
||||
setSelectedMoaPreset(Object.keys(moa.presets).find(name => name !== selectedMoaPreset) || '')
|
||||
void saveMoa(next)
|
||||
}}
|
||||
size="sm"
|
||||
variant="ghost"
|
||||
|
|
@ -816,18 +818,16 @@ export function ModelSettings({ onMainModelChanged }: ModelSettingsProps) {
|
|||
disabled={!newMoaPresetName.trim() || !!moa.presets[newMoaPresetName.trim()] || applying}
|
||||
onClick={() => {
|
||||
const name = newMoaPresetName.trim()
|
||||
setMoa(
|
||||
prev =>
|
||||
prev && {
|
||||
...prev,
|
||||
presets: {
|
||||
...prev.presets,
|
||||
[name]: { ...currentMoaPreset, reference_models: [...currentMoaPreset.reference_models] }
|
||||
}
|
||||
}
|
||||
)
|
||||
const next: MoaConfigResponse = {
|
||||
...moa,
|
||||
presets: {
|
||||
...moa.presets,
|
||||
[name]: { ...currentMoaPreset, reference_models: [...currentMoaPreset.reference_models] }
|
||||
}
|
||||
}
|
||||
setSelectedMoaPreset(name)
|
||||
setNewMoaPresetName('')
|
||||
void saveMoa(next)
|
||||
}}
|
||||
size="sm"
|
||||
variant="textStrong"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue