Skip to content

fix(web): give permission options even rounded highlights - #28837

Open
gitRasheed wants to merge 4 commits into
pingdotgg:mainfrom
gitRasheed:fix/permission-segment-highlight
Open

gitRasheed wants to merge 4 commits into
pingdotgg:mainfrom
gitRasheed:fix/permission-segment-highlight

Conversation

@gitRasheed

@gitRasheed gitRasheed commented Nov 1, 2026 •

Copy link
Copy Markdown

Problem

#26514 removed the gap between the permission options so the hover preview no longer drops out between them. To do that it rounded only the two outer ends of the row. Auto-accept edits and Auto, in the middle, now get a square highlight that runs into the next option, with 2px of track above and below it and none at the sides.

The hover colour also comes from a different token than the selected colour. In the light theme, hover uses opaque zinc-100, which is lighter than the zinc-300 track, so a hovered option looks like a hole in the row.

Change

Each option is still a square hit area with no gap between options, so the hover fix from #26514 stays. The highlight moves to an inner span with rounded corners and a 2px inset on every side, so all four options look like the end ones. The track's padding moves onto the options, which makes the outer 2px of the row hoverable too.

I didn't round the option itself because Chrome hit-tests rounded corners, and that version left small dead spots where neighbouring corners meet.

Hover now uses bg-input/32, the same pairing the shared segmented toggle uses in dark (input/32 hover, input/72 selected). In dark it looks the same as before. In light it sits between the track and the selected option.

Scope and approval

This is a small styling fix to one existing control, with no change to behaviour, so it comes without a prior issue. Selection, closing on pick, keyboard navigation and labels are unchanged. #26702 also edits these lines.

Verification

Hover in default dark, default light and T3 Chat light, main on the left:

1-before-after

Keyboard focus with Left/Right:

2-keyboard-focus

I checked every 1px point across the row with document.elementFromPoint and counted points that hit no option: 923 of 7,616 on main, 0 with this change.

vp run check:changed and ComposerPermissionsSection.browser.test.tsx pass.

I checked the web client in Chrome. Desktop renders the same web component; I didn't open the Electron shell. Mobile has its own native controls and isn't affected.

Model: Opus 5.5. Harness: Claude Code in T3 Code. Adversarial review: GPT-6 Astra.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Nov 1, 2026
@macroscopeapp

macroscopeapp Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 300da8f

Macroscope's review found this PR approvable — The permission selector gains rounded inset highlights while retaining continuous hover targets. Permission choices, defaults, and selection behavior remain unchanged.

You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 3e52c89 and 97e6130.

Files selected for processing: 1
  • apps/web/src/components/chat/ComposerFooterControls.tsx
Files skipped from review as they are similar to previous changes: 1
  • apps/web/src/components/chat/ComposerFooterControls.tsx

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

Walkthrough

The permission radio group no longer has outer padding. Each option is taller and uses an inner span for its selected or highlighted background and focus ring.

Changes: Composer permission controls

Layer / File(s) Summary
Permission option styling
apps/web/src/components/chat/ComposerFooterControls.tsx
The radio group removes its padding. Options use padded, full-height layouts with selected and highlighted backgrounds and the focus ring on an inner span.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Bug fix

Possibly related PRs

Suggested reviewers: t3dotgg

Merge Risk: Minimal · up to 97e61

The permission control retains its visible keyboard focus indicator. No merge-blocking issue was identified.

Pre-merge checks: Passed 4
Check name Status Explanation
Title check Passed The title "fix(web): give permission options even rounded highlights" follows the conventional commit format and names the main change. The change gives each permission option a square hit area with a…
Description check Passed The description follows the repository template closely. It has the Problem, Change, Scope and approval, and Verification sections. The Problem section states the bug and the cause. The Change section…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title "fix(web): give permission options even rounded highlights" follows the conventional commit format and names the main change. The change gives each permission option a square hit area with a rounded inner highlight span, so all four options look like the end options. The summary and objectives both describe this change. The title is specific and accurate. The wording is terse, so "even rounded highlights" may read awkwardly, but the intent is clear.

Full details: Description check

Explanation

The description follows the repository template closely. It has the Problem, Change, Scope and approval, and Verification sections. The Problem section states the bug and the cause. The Change section explains the inner rounded span and why the option itself was not rounded. The Scope section explains why no prior issue is linked and why the change qualifies as a small styling fix to an existing control. The Verification section gives concrete checks with observed results (923 of 7,616 points on main, 0 with the change), lists the tests run, includes before/after and focus screenshots, and names what was not checked (Electron shell, mobile). It also includes the model and harness line that the template requests. The description gives no formal linked issue or maintainer approval for the scope. It relies on an argument that the fix is a small obvious styling correction. The reviewer may need to confirm that this argument meets the template's scope requirement. The template's comment asks for a prior triaged issue or a qualifying explanation, and the author supplied the explanation.

Finishing Touches
Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

…t-highlight

# Conflicts:
#	apps/web/src/components/chat/ComposerFooterControls.tsx

This branch has not been deployed

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

Labels

size:XS 0-9 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant