Skip to content

fix(ui): remove redundant selected-label span to align Talk settings fields#96923

Closed
krissding wants to merge 2 commits into
openclaw:mainfrom
krissding:lzyyzznl/fix-96915-talk-settings-alignment
Closed

fix(ui): remove redundant selected-label span to align Talk settings fields#96923
krissding wants to merge 2 commits into
openclaw:mainfrom
krissding:lzyyzznl/fix-96915-talk-settings-alignment

Conversation

@krissding

Copy link
Copy Markdown
Contributor

What Problem This Solves

Fixes #96915: Voice and Sensitivity select fields were misaligned with the Model input field in the Talk settings popover due to an extra agent-chat__talk-select-label span that added a vertical row above each <select> element.

Why This Change Was Made

Root cause: renderNativeTalkSelect() rendered an extra <span class="agent-chat__talk-select-label"> between the field label and the <select>. The .agent-chat__talk-field uses flex-direction: column with gap: 6px, so this extra child pushed the select one row lower than the adjacent Model <input>, which only has the label span + input (2 children vs 3 children).

Since the native <select> element already displays the currently selected option value, the extra label span was redundant.

Real behavior proof

Before fix:

Voice:        Sensitivity:
[label span]  [label span]
[selected]    [selected]     ← extra row pushing select down
[select]      [select]

Model:
[label span]
[input]                      ← no extra row, sits higher

After fix:

Voice:        Sensitivity:   Model:
[label span]  [label span]   [label span]
[select]      [select]       [input]

All three fields now have 2 children each → vertically aligned.

Evidence

  • Added/modified test covers the exact issue scenario
  • pnpm build passes
  • pnpm check passes
  • Relevant CI shard tests pass (146 test files passed, 0 related failures)

Merge Risk

  • Risk category: Low
  • What could go wrong: None — the removed span was purely presentational; the <select> element natively displays the selected value
  • Why safe: Only visual change removing a redundant DOM element. No logic or data flow affected. Tests updated to verify correct select value instead of label text.

AI-assisted: built with Claude Code

… to fix alignment with Model input

The renderNativeTalkSelect function added an extra agent-chat__talk-select-label span
between the field label and the <select> element. In the .agent-chat__talk-field
flex-direction:column layout, this extra child pushed the select element one row lower
than the adjacent Model <input>, which only has the label span + input.

Since the native <select> element already displays the selected option, the extra label
span was redundant. Removing it restores vertical alignment of Voice, Model, and
Sensitivity fields in the Talk settings popover.

Closes openclaw#96915

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
@clawsweeper

clawsweeper Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Thanks for the context here. I did a careful shell check against current main, and this is already implemented.

Close: current main already contains the Talk settings source/test fix from the merged sibling PR, and the live branch now has zero changed files against main.

Root-cause cluster
Relationship: superseded
Canonical: #96925
Summary: The current PR is superseded by the merged source/test fix for the same Talk settings selected-label alignment root cause.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

So I’m closing this as already implemented rather than keeping a duplicate issue open.

Review details

Best possible solution:

Keep the merged current-main source/test fix from #96925 and close duplicate no-op branches rather than merging another PR.

Do we have a high-confidence way to reproduce the issue?

No for current main: source inspection shows the selected-label render path is gone from the Talk settings helper. The latest release tag still contains the old path, so the bug was real but is now fixed only on main.

Is this the best way to solve the issue?

Yes: the current-main fix removes the redundant DOM child from the shared native select renderer and updates focused tests, which is cleaner than CSS-offsetting the mismatch.

Security review:

Security review cleared: Security review cleared: the live PR diff is empty, and the original proposed UI/test-only change did not touch dependencies, secrets, permissions, CI, package metadata, or code-execution surfaces.

AGENTS.md: found and applied where relevant.

What I checked:

Likely related people:

  • evan-YM: Authored the merged source/test fix in commit 4a4657a from the canonical sibling PR. (role: current-main fix author; confidence: high; commits: 4a4657a1828f, 7d47d0f5d6a9; files: ui/src/ui/views/chat.ts, ui/src/ui/views/chat.test.ts)
  • vincentkoc: Commit a821ea1 introduced the selected-label helper behavior, and GitHub reports vincentkoc merged the canonical fix PR. (role: feature introducer and merger; confidence: high; commits: a821ea110bbe, 4a4657a1828f; files: ui/src/ui/views/chat.ts)
  • alexzhu0: Commit 85e5d48 touched the Talk settings render, layout, and tests while carrying the selected-label row forward into the native-select path. (role: affected refactor author; confidence: high; commits: 85e5d486df11; files: ui/src/ui/views/chat.ts, ui/src/styles/chat/layout.css, ui/src/ui/views/chat.test.ts)
  • shushushv: Commit d211d49 updated realtime Talk provider and transport option behavior in the same chat view and adjacent tests. (role: recent adjacent contributor; confidence: medium; commits: d211d49011ba; files: ui/src/ui/views/chat.ts, ui/src/ui/views/chat.test.ts)

Codex review notes: model internal, reasoning high; reviewed against a202dd0faf56; fix evidence: commit 4a4657a1828f, main fix timestamp 2026-06-28T18:40:45-07:00.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. labels Jun 26, 2026
@clawsweeper

clawsweeper Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper applied the proposed close for this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: web-ui App: web-ui P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. size: XS status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Talk settings style alignment issue

1 participant