Skip to content

feat(settings): one row each for agents order, thinking and dictation tidying - #3117

Merged
devswha merged 1 commit into
mainfrom
feat/settings-row-merges
Nov 6, 2026
Merged

devswha merged 1 commit into
mainfrom
feat/settings-row-merges

Conversation

@devswha

@devswha devswha commented Nov 6, 2026

Copy link
Copy Markdown
Owner

What

The last step of the Settings simplification. Three pairs of rows become one row each. Every row still reads and writes the same two settings it stood for, so every earlier choice is kept and nothing is removed.

Before After
Agents order (Workspaces / Activity) and Group agents by state (a switch, in More settings) Agents order: Workspaces / Activity / By state. By state is this device's grouping (agentGroups), with Within a state right under it; the other two are every browser's order (agentOrder) with the grouping off.
Show thinking and Expand thinking (two switches) Show thinking: Hidden / Folded / Expanded (showThinking, and this device's expandThinking).
Tidy dictated text: In chat, In the terminal (two switches) Tidy dictated text: Off / Chat / Terminal / Both (voicePolishChat, voicePolishTerminal). All four combinations stay possible.

Agents order now sits in Appearance's first view, so Group agents by state leaves the More settings fold and its count. Each new row's description says what the two choices mean.

Validation

  • bun run check fast on the pushed head (main with this commit): all green.
  • Unit: i18n (the new labels and descriptions placed and translated in ko/ja/zh; the now unused keys gone), settings, paletteSettings and conventions pass.
  • Browser, all 42 Settings-related scripts PASS on the pushed head (shared demo build). They include:
    • settings-pages-demo-regression.ts with a new mergedRows step. Through a reload it checks: By state shows Within a state and Activity hides it; Expanded and Hidden; and Terminal stores chat off and terminal on.
    • sidebar-split-demo-regression.ts and sidebar-split-access-demo-regression.ts, which now pick By state / Workspaces, by mouse and by keyboard.
    • agent-groups, settings-tabs and chat-size.
  • Failing on main too, so not caused by this PR, and not run here: ui-regression, font-swap, alert-sound, machines-browser-qa, update-browser-qa. relay-shell-browser-qa needs a real relay.
  • Not run locally: bun run check full and the rest of the browser lane (CI runs them).

Screenshots (demo build)

Light Dark
1280 Agents order, By state
1280 Show thinking
1280 Tidy dictated text
390 Agents order
390 Show thinking
390 Tidy dictated text

… tidying

Agents order offers By state beside Workspaces and Activity (this device's grouping, with Within a state under it), Show thinking is Hidden, Folded or Expanded, and Tidy dictated text is Off, Chat, Terminal or Both. Each row reads and writes the same two settings as before, so every earlier choice is kept.
@coderabbitai

coderabbitai Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

Explain Change →

Caution

Review failed

The pull request is closed.

Summary

Summary by CodeRabbit

  • New Features
    • Combined related settings into three selectors: Agents order (Workspaces, Activity, or By state), Show thinking (Hidden, Folded, or Expanded), and Tidy dictated text (Off, Chat, Terminal, or Both).
    • Existing choices are retained, and settings labels are available in Japanese, Korean, and Chinese.

Three Settings controls now combine pairs of existing settings for agent ordering, thinking display, and dictated-text cleanup. Translations, documentation, changelog text, and regression tests are updated to reflect the combined controls.

Changes: Merged Settings Controls

Layer / File(s) Summary
Combined controls and supporting updates
src/components/SettingsDialog.tsx, src/lib/i18n/settings-layout.*.ts, src/lib/i18n/settings.*.ts, DESIGN.md, changelog.d/settings-merged-rows.md
Agents order combines Workspaces, Activity, and By state. Show thinking combines Hidden, Folded, and Expanded. Tidy dictated text combines Off, Chat, Terminal, and Both. Japanese, Korean, and Chinese translations are updated.
Merged controls regression coverage
scripts/settings-pages-demo-regression.ts, scripts/sidebar-split-access-demo-regression.ts, scripts/sidebar-split-demo-regression.ts
Regression coverage checks option visibility, retained selections, and dictated-text setting values. Sidebar order tests now select an Agents order option.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature

Possibly related PRs

  • devswha/ovis#3108: Moves dictation text-polishing controls to Chat, where this change combines them into one selector.
  • devswha/ovis#2944: Uses agentGroups for sidebar ordering and tests divider interactions, which this change updates to use the new Agents order control.

Suggested reviewers: haeminway1

Merge Risk: Low · up to a5652

The combined controls retain their underlying behavior, but familiar searches no longer find three settings and the ordering description omits pinned agents. These are bounded discoverability and documentation issues; merging carries low risk.

- [ ] Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@devswha

devswha commented Nov 6, 2026

Copy link
Copy Markdown
Owner Author

Review (omo + Codex Terra xhigh)

omo: CLEAR at a565283. Codex: no HIGH or MEDIUM. It found no defect in the stored-value mappings, shared versus device-only sync, visibility conditions, translations or Segmented markup.

Finding Severity Status
Settings' search no longer finds a merged row by the old labels ("Group agents by state", "Expand thinking") or by a choice's name ("terminal" for Tidy dictated text), since a row matches its label, description and keywords, not its segment labels LOW Not changed here: each row is found by its own label and description ("by state", "thinking", "tidy"). Keywords for the old labels can follow if needed
Picking Terminal from the default Chat tidy setting counts "2 changed" in Chat's More settings, one per stored key LOW Not changed: the count is per stored setting, as the fold defines it

CodeRabbit had not reviewed when this was written.

@devswha

devswha commented Nov 6, 2026

Copy link
Copy Markdown
Owner Author

Local merge gate (owner-approved): bun run check fast passed at this head, omo CLEAR at this head, Codex no HIGH/MEDIUM (2 LOWs in comments), threads resolved, merges cleanly; 42 settings-related browser regressions pass. Last step of the owner-requested Settings simplification: three pairs of rows become one each (agent order, thinking display, dictation polish). Stored settings are unchanged, so every earlier choice is kept. Merged without waiting for GitHub CI.

@devswha
devswha merged commit 309f5b3 into main Nov 6, 2026
10 of 12 checks passed
@devswha
devswha deleted the feat/settings-row-merges branch November 6, 2026 03:31
devswha added a commit that referenced this pull request Nov 6, 2026
… in ui-regression (#3120)

## What it changes

`scripts/ui-regression.ts` (CI's required "Browser regression
(ui-regression)" job) is red on `main` again: `setChecked` times out
after 30 s waiting for `getByRole('switch', { name: 'Suggestion chip'
})`.

#3108 moved the Suggestion chip switch out of Chat's Composer "More
settings" into Claude Code's own settings on the Agents page: in Claude
Code's row under "On this PC" when the PC has Claude, else in a "Claude
Code" group of its own on that page (and only on a touch screen, which
the phone context is). The script still opened
`?settings=chat&section=composer-more`, where the switch no longer is.

The step now opens `?settings=agents`, waits for Claude Code's row or
its group, opens the row when it is one, and turns the same switch on.
The steps and assertions after it are unchanged.

I also checked every `scripts/*` file for links, sections and labels of
the rows #3108 and #3117 moved or merged (`launch-modes`,
`chat-experimental`, the old `voice`/`remote` pages, Permission mode,
Artifacts chip, Side conversations chip, Expand thinking, Group agents
by state, the two Tidy dictated text switches, the old page names).
Apart from this step, #3108 and #3117 had already updated them, so this
PR changes only this one script.

No product code changes.

## Validation

- In `herdr-ci-runner:local` (CI env, a fresh worktree, `bun install
--frozen-lockfile`, `bun run build`, `scripts/ci-browser-parallel.ts`
with `BROWSER_SCRIPTS=scripts/ui-regression.ts`):
- on `origin/main` 309f5b3: FAIL twice, `TimeoutError: setChecked:
Timeout 30000ms exceeded` waiting for the `Suggestion chip` switch.
- on this branch: PASS (238 s), including "PASS a phone offers Claude's
suggestion as a chip once Settings turns it on".
- `bun run check fast`: green (unit 12591 pass, 0 fail; typecheck,
build, generated files and workflow syntax ok).
- Skipped: `ui-contexts-regression`, the integration suite and the other
browser scripts (only this step of one script changed).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant