Repository navigation
fix(ui): reveal capsule actions without covering labels or shifting rows - #3534
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Connection and provider capsule actions can obscure short labels. Add a fixed internal action slot that centers the label at rest, then shifts the content aside as the action appears. Capsule width and row placement remain unchanged throughout the interaction.
Capsule actionPlacement="reserved", with keyboard, touch, reduced-motion, and RTL handling; retain the existing overlay default.Type and Areas
Type: UI/UX, bug fix
Areas: design system, Web UI connection selection, model settings
Motivation / Impact
Labels remain readable when an action is hidden or shown. Hovering a capsule at the end of a wrapped row does not change its width, so the edit/delete target stays in place. Selection/editing and the secondary action remain separate native buttons. Both provider deletion entry points use the existing confirmation flow.
Verification
Passed:
pnpm run check:web— includes Web UI type checking, Appearance checks, all-surface theme color audits, and theme visual contracts.pnpm --dir design-system run build:ui && node --test design-system/packages/ui/tests/capsule.test.mjs— 5 tests.pnpm run motion:audit— reviewed inventory; this is not a pass/fail gate.git diff --checkandnode scripts/check-git-object-sizes.mjs --base upstream/main --head HEAD.Focused provider/settings checks: 34 tests passed:
Focused connection/project checks: 181 tests passed:
pnpm --dir src/web-ui exec vitest run \ src/app/components/NewProjectDialog/NewProjectDialog.test.tsx \ src/app/components/NavPanel/MainNav.projectCreation.test.tsx \ src/app/services/createProject.test.ts \ src/features/ssh-remote/SSHConnectionDialog.fields.test.tsx \ src/features/ssh-remote/SSHConnectionDialog.test.tsx \ src/features/ssh-remote/useWorkspaceSourceOptions.test.tsx \ src/features/ssh-remote/workspaceSourceError.test.ts \ src/features/ssh-remote/SSHRemoteProvider.test.tsx \ src/features/ssh-remote/SSHAuthPromptDialog.test.tsx \ src/features/ssh-remote/RemoteFileBrowser.test.tsxBrowser geometry/callback checks used the real
WorkspaceChoiceCapsulesin a temporary fixture: two widths around a wrapping threshold, 24 pointer edits, and a keyboard Tab/Enter edit. All edits reached the intended callback with no selection callbacks; recorded capsule position/size delta was zero. Idle text centers exactly, shifts aside on hover, and returns on pointer exit. This is interaction evidence, not native WebView visual acceptance.A broader
pnpm run design-system:checkrun encountered two existing failures inpackages/flow-chat-presentation/tests/catalog.test.tsx: production adapter/catalog mismatches forAgentDelete/AgentInterrupt, and missing dedicated projections forTask/AgentControl/ListWorkspaces. Those owners are unchanged by this PR.Reviewer Notes
AI-assisted; testing level: locally tested, with focused behavior and browser geometry checks. No persisted shapes, host operations, or wire protocols change. Live remote workspace, remote control, Peer Device Mode, and Detached Dispatch were not exercised.
For visual review, hover the last connection capsule in a wrapped row and each provider capsule, then move to its action. Text should shift while the pill stays fixed. Tab to the action and check that it is immediately available. Verify provider deletion can still be canceled from either entry point. Native before/after screenshots are not included.
Checklist