Files
OpenMAIC/components/agent
wyuc e83db6a531 fix(agents): persist AgentBar voice picks and mode/selection across reloads (#723)
* feat(audio): let resolveAgentVoice honor per-agent voice overrides

* feat(settings): persist per-agent voice overrides

* fix(agents): persist AgentBar voice picks via settings overrides

* fix(classroom): keep user's agent mode and selection across loads

* fix(agents): only carry user-set agent selection across classrooms

Review follow-ups: stage-derived defaults written by a classroom load were
re-read as a user choice on the next load, so visiting a preset classroom
permanently downgraded auto classrooms to preset agents. Track the origin
with a persisted agentSelectionIsUserSet flag (set by AgentBar interactions,
cleared by fallback writes). Also: voice overrides are now clearable
(undefined deletes), the override type is single-sourced in voice-resolver,
and persist rehydration of the new fields is pinned by tests.

* fix(agents): don't mark stage-derived selections as user choices

Round-2 review: clicking the already-active mode tab no longer flags the
selection as user-set (a visual no-op must not promote stage defaults to a
choice), generation-preview clears the flag when it writes the generated
roster, and tests now pin that setter writes actually reach storage.

* fix(agents): restore generated agent selection when switching back to Auto

Review follow-up (#723): handleModeChange('auto') left the preset ids
selected, so the UI said Auto while discussion playback kept using preset
agents, and the persisted user-set auto pair could never validate on
restore. Switching to Auto now selects the loaded classroom's generated
agents (empty when none are loaded, falling back to stage defaults on the
next classroom load).
2026-06-11 19:02:42 +08:00
..