fix(web): name the preset in General settings, and say 预设 in Chinese

The preference row rendered `option.id` while every other surface — the
new-session chip, the session header label, the preset cards — renders the
metadata name. So the same roster read `标准模式` on one screen and `standard`
on the next, and the id is addressing, not a label. A preset that names itself
nothing still falls back to its id, which is then all there is to say about it.

The row's Chinese copy also still ended on the English word: the section is
`Agent 预设`, so the sentence about a running session keeping its composition
says 预设 too.
This commit is contained in:
Yichen Jiang
2026-08-07 03:00:37 +08:00
parent d89f1ced94
commit 0ab035c748
4 changed files with 18 additions and 9 deletions

View File

@@ -28,7 +28,9 @@ const ROW_READY: AgentPresetSettingsState = {
error: null,
writable: true,
currentValue: 'standard',
options: [{ id: 'standard', trust: 'system' }, { id: 'mine', trust: 'user' }],
// `mine` deliberately names itself nothing: the row must fall back to the
// id for a preset whose author wrote no metadata.
options: [{ id: 'standard', trust: 'system', name: '标准模式' }, { id: 'mine', trust: 'user' }],
}
const SEAT_READY: AgentPresetSeatState = {
@@ -88,7 +90,7 @@ describe('the General-settings row', () => {
const actions = renderRow()
await waitFor(() => { expect(actions.load).toHaveBeenCalledTimes(1) })
expect(screen.getByRole('button').textContent).toContain('standard')
expect(screen.getByRole('button').textContent).toContain('标准模式')
})
it('marks a locally authored option as local', () => {
@@ -100,7 +102,7 @@ describe('the General-settings row', () => {
// list says which rows are local rather than presenting all as vetted.
expect(screen.getByText(`mine · ${en.userTrust}`)).toBeTruthy()
// The shipped one carries no marker; only local rows are called out.
expect(screen.getAllByText('standard')).toHaveLength(2)
expect(screen.getAllByText('标准模式')).toHaveLength(2)
})
it('writes the picked preset and closes the menu', () => {