Skip to content

refactor(web): app code stops restyling sidebar, popover, table and misc ui exports - #13207

Merged
juliusmarminge merged 1 commit into
restyle/stack-fieldsfrom
restyle/stack-other
Sep 23, 2026
Merged

juliusmarminge merged 1 commit into
restyle/stack-fieldsfrom
restyle/stack-other

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

App code stops restyling Sidebar, ScrollArea, Popover, Tooltip, Table, Dialog, Toggle and the other ui exports. The only components/ui change is generic: Toggle styles aria-disabled like disabled.

  • Pull request people: PullRequestActorLabel stops forwarding a labelClassName and has one prop, variant="label" | "avatar". Logins are medium weight everywhere, and a profile link renders through InlineButton. The overlapping author faces on the PR summary get their separating ring from the stack's own wrapper, and every avatar is the default 16px (the summary used 24px).
  • Stage artwork: the sidebar toggle over the Nightly/Dev artwork uses Button's media-navigation.
  • Sidebars:
    • The titlebar row becomes a plain div.
    • Border, padding and inset overrides go in the main, legacy and settings sidebars.
    • The legacy search row gets a focus ring.
  • Popovers:
    • The theme and accent colour pickers use padding="none". The theme picker loses its custom radius, border and heavy shadow.
    • The worktree setup popover loses surface-glass.
    • Release notes and the composer notice lose their text-wrap and shadow tweaks.
  • Usage:
    • The pooled legend rows at narrow width are Button ghost compact.
    • The price overrides table uses standard row hover and cell padding.
  • Content search: the Aa / ab / .* toggles use the segmented toggle size.
  • Dialogs:
    • The commit dialog and script editor footers use variant="bare", so light mode drops its muted strip too.
    • Radio and add-provider cards take the default gap.
  • No visible change: MiddleTruncate, ScrollArea, the banner scroll, and preview card padding moved to wrapper elements.

no-restyle findings: 402 → 250.

No screenshots yet: these changes are verified by lint, typecheck and tests only.

Claude Opus 5.5 via Claude Code.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Style
    • Refined spacing, alignment, borders, and text treatment across sidebars, dialogs, menus, settings, pull request views, and usage tables.
    • Updated sidebar controls and search options with adjusted button styling.
    • Improved layout and padding in popovers, tooltips, and scrollable content.
  • Accessibility
    • Toggles marked as unavailable now appear visually dimmed, consistent with disabled toggles.

…isc ui exports

Clears the 152 no-restyle findings in the "other" scope. Per the maintainer's
rule, components/ui holds generic primitives only, so no feature look moved
into ui/*. Decisions per cluster:

- SidebarTrigger over the stage artwork (AppSidebarLayout, SidebarChrome):
  renders Button's existing media-navigation variant (control on imagery)
  instead of white stroke/hover overrides. No new variant.
- SidebarHeader in SidebarChrome: the titlebar row is not a padded sidebar
  header, so it is a plain div with its own classes.
- Sidebar border-r: dropped; the primitive already draws the side border.
- SidebarMenuSub/MenuButton/MenuItem/Group/Menu (LegacySidebar, Sidebar,
  SettingsSidebarNav, SidebarThreadHeader): drift, moved onto the stock
  look. The project row reserves room for its overlaid actions with a spacer
  child instead of pr-8/pr-14; SettingsSidebarNav's gap moves to a wrapper.
- PullRequestActorLabel: stops forwarding className into its avatar and
  label. It takes variant ("label" | "avatar" | "stacked-avatar") and size
  ("sm" | "md") for the three looks its six call sites use; className is
  placement only. The profile link renders through InlineButton.
- MiddleTruncate: typography and motion move to a plain wrapper span.
- PopoverPopup/TooltipPopup: color pickers use padding="none"; the thread
  hover card drops the [&_viewport]:p-0 reach-in and insets its own content;
  glass/shadow/text-balance overrides dropped (stock popup look).
- PopoverTrigger: the pooled usage legend row renders Button ghost/compact;
  the auto-balance banner title truncates an inner span.
- Toggle: search option toggles use the segmented size/variant; the other
  overrides were dropped. ui/toggle gains aria-disabled:opacity-64, the
  generic ARIA-disabled state matching native disabled.
- Table*, Separator, Label, RadioGroup, AlertAction, DialogTitle,
  DialogPanel: overrides dropped onto stock spacing/colors; content-level
  color and padding move to inner elements.
- DialogFooter dark transparent overrides: variant="bare".
- ScrollArea borders/rings: moved to a wrapper div; ComposerBanner.Scroll
  pads its own content based on the viewport's overflow state.
- PreviewCardPopup p-3 and CollapsiblePanel pt-3: moved to inner content.
- Badge opacity: moved to a wrapper span.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@juliusmarminge
juliusmarminge added this pull request to stack #13194 September 23, 2026 04:08
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 23, 2026
@@ -752,14 +752,7 @@ export function PullRequestSummaryTab({
<PullRequestActorLabel

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium pullRequest/PullRequestSummaryTab.tsx:752

Reviewers without an entry.outcome now render overlapping avatars without the ring-background separator, so multiple pending reviewers appear visually merged under the -space-x-1 layout. variant="avatar" replaced the previous conditional fallback ring classes; restore those classes for outcome-less entries.

🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
In file @apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx around line 752:

Reviewers without an `entry.outcome` now render overlapping avatars without the `ring-background` separator, so multiple pending reviewers appear visually merged under the `-space-x-1` layout. `variant="avatar"` replaced the previous conditional fallback ring classes; restore those classes for outcome-less entries.

@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire — 13.5 KiB — 15.1 KiB ✅
Codex Thread snapshot wire — 7.1 KiB — 7.3 KiB ✅
Codex Live turn WebSocket wire — 6.5 KiB — 7.8 KiB ✅
Codex Live turn WebSocket decoded — 56.3 KiB — 66.4 KiB ✅
Codex Live turn messages — 10 — 21 ✅
Claude Total thread wire — 13.5 KiB — 15.1 KiB ✅
Claude Thread snapshot wire — 7.1 KiB — 7.3 KiB ✅
Claude Live turn WebSocket wire — 6.4 KiB — 7.8 KiB ✅
Claude Live turn WebSocket decoded — 57.0 KiB — 66.4 KiB ✅
Claude Live turn messages — 9 — 21 ✅

Baseline: unavailable · PR result: f8c11e6 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 114.0 KiB
  • Claude decoded thread snapshot: 114.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeapp

macroscopeapp Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This 41-file refactor changes the presentation and DOM structure of existing sidebar, popover, dialog, table, settings, usage, and pull-request flows, rather than making a small isolated styling cleanup. An unresolved medium finding also identifies a visual regression in overlapping pending-reviewer avatars.

Not approved because:

  • 1 blocking correctness issue found at or above your repo's Minimum Blocking Severity

Adjust the Minimum Blocking Severity for this repo — including turning it Off — in Settings. You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: pingdotgg/t3code/.coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: 3b5db0cb-0b0d-44f6-aefd-eff554e05a8e

📥 Commits

Reviewing files that changed from the base of the PR and between f265549 and f8c11e6.

📒 Files selected for processing (41)
  • apps/web/src/components/AppSidebarLayout.tsx
  • apps/web/src/components/BranchToolbarBranchSelector.tsx
  • apps/web/src/components/CustomSnoozeDialog.tsx
  • apps/web/src/components/GitActionsControl.tsx
  • apps/web/src/components/LegacySidebar.tsx
  • apps/web/src/components/PullRequestThreadDialog.tsx
  • apps/web/src/components/Sidebar.tsx
  • apps/web/src/components/chat/ChangedFilesTree.tsx
  • apps/web/src/components/chat/ComposerBanner.tsx
  • apps/web/src/components/chat/ComposerBannerStack.tsx
  • apps/web/src/components/chat/MessagesTimeline.tsx
  • apps/web/src/components/chat/useAutoBalanceUpdateBanner.tsx
  • apps/web/src/components/onboarding/WelcomeWizard.tsx
  • apps/web/src/components/projectScriptEditor.tsx
  • apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx
  • apps/web/src/components/pullRequest/PullRequestGhosts.tsx
  • apps/web/src/components/pullRequest/PullRequestLinkPreview.tsx
  • apps/web/src/components/pullRequest/PullRequestReviewAnnotation.tsx
  • apps/web/src/components/pullRequest/PullRequestReviewerPicker.tsx
  • apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx
  • apps/web/src/components/pullRequest/pullRequestPresentation.tsx
  • apps/web/src/components/search/ProjectContentSearchDialog.tsx
  • apps/web/src/components/settings/AddProviderInstanceDialog.tsx
  • apps/web/src/components/settings/DiagnosticsSettings.tsx
  • apps/web/src/components/settings/IntegrationsSettings.tsx
  • apps/web/src/components/settings/ProviderAccentColorPicker.tsx
  • apps/web/src/components/settings/ProviderSettingsPanel.tsx
  • apps/web/src/components/settings/ResourceTelemetryDiagnostics.tsx
  • apps/web/src/components/settings/SettingsScopeNotice.tsx
  • apps/web/src/components/settings/SettingsSidebarNav.tsx
  • apps/web/src/components/settings/ThemeColorPicker.tsx
  • apps/web/src/components/settings/ThemeEditorPanel.tsx
  • apps/web/src/components/sidebar/SidebarChrome.tsx
  • apps/web/src/components/sidebar/SidebarThreadHeader.tsx
  • apps/web/src/components/sidebar/SidebarUpdatePill.tsx
  • apps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx
  • apps/web/src/components/ui/toggle.tsx
  • apps/web/src/components/usage/UsageLimitsPooled.tsx
  • apps/web/src/components/usage/UsagePriceOverrides.tsx
  • apps/web/src/routes/_chat.pull-requests.tsx
  • scripts/lint-restyle-ceiling.ts
💤 Files with no reviewable changes (1)
  • apps/web/src/components/sidebar/SidebarUpdatePill.tsx

Included review availability: Your plan provides up to 10 included reviews per hour; 2 remain after this review.


📝 Walkthrough

Walkthrough

The pull request updates presentation and layout across sidebar, chat, pull-request, settings, usage, and dialog components. PullRequestActorLabel gains an avatar variant. Several scroll and popover wrappers change, and RESTYLE_CEILING decreases from 402 to 250.

Changes

Application UI restyling

Layer / File(s) Summary
Pull-request actor labels and presentation
apps/web/src/components/pullRequest/*, apps/web/src/components/PullRequestThreadDialog.tsx, apps/web/src/routes/_chat.pull-requests.tsx
PullRequestActorLabel adds a label or avatar variant. Pull-request components use the avatar variant and adjust actor, popup, and separator styling.
Sidebar presentation
apps/web/src/components/AppSidebarLayout.tsx, apps/web/src/components/LegacySidebar.tsx, apps/web/src/components/Sidebar.tsx, apps/web/src/components/sidebar/*
Sidebar triggers, headers, tooltips, project lists, and release-note separators receive layout and styling changes.
Chat and branch surfaces
apps/web/src/components/BranchToolbarBranchSelector.tsx, apps/web/src/components/chat/*
Branch and file labels move styling or truncation to wrapper elements. Composer overflow padding moves to an inner wrapper, and chat popover styling changes.
Dialogs and workflow controls
apps/web/src/components/CustomSnoozeDialog.tsx, apps/web/src/components/GitActionsControl.tsx, apps/web/src/components/onboarding/WelcomeWizard.tsx, apps/web/src/components/projectScriptEditor.tsx, apps/web/src/components/search/ProjectContentSearchDialog.tsx
Dialog, Git action, onboarding, editor, and search controls receive spacing, footer, grid, and content-layout changes.
Settings surfaces and controls
apps/web/src/components/settings/*, apps/web/src/components/ui/toggle.tsx
Settings tables, navigation, popovers, badges, and controls receive layout and styling changes. Toggle styles add reduced opacity for the aria-disabled state.
Usage controls and restyle limit
apps/web/src/components/usage/*, scripts/lint-restyle-ceiling.ts
Usage controls receive button and table layout updates. RESTYLE_CEILING decreases from 402 to 250.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Refactor

Suggested reviewers: maria-rcks, bil0000

Merge Risk: ⚪ Minimal · up to f8c11

The inspected UI interactions remain functional, and the restyle check passes. No confirmed issue prevents merging after normal checks.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 31.11% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 45 functions across 40 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ⚠️ Warning The description provides substantial change details and notes validation steps, but it does not use the required What Changed, Why, UI Changes, and Checklist sections. It also states that required UI … Rewrite the description using the repository template. Add explicit What Changed and Why sections, include before/after screenshots for the UI changes, and complete the Checklist. If screenshots are not applicable for a specific change, exp…
✅ Passed checks (3 passed)
Check name Status Explanation
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.
Title check ✅ Passed The title clearly identifies the main refactoring: removing feature-specific styling from sidebar, popover, table, and other UI exports. It is concise and related to the pull request objectives.
Full details: Description check

Explanation

The description provides substantial change details and notes validation steps, but it does not use the required What Changed, Why, UI Changes, and Checklist sections. It also states that required UI screenshots are not included.

Resolution

Rewrite the description using the repository template. Add explicit What Changed and Why sections, include before/after screenshots for the UI changes, and complete the Checklist. If screenshots are not applicable for a specific change, explain why in the UI Changes section.

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@juliusmarminge
juliusmarminge merged commit f465227 into main Sep 23, 2026
24 of 26 checks passed
@juliusmarminge
juliusmarminge deleted the restyle/stack-other branch September 23, 2026 04:33
cursor Bot pushed a commit to aaditagrawal/t3code that referenced this pull request Sep 23, 2026
…isc ui exports (pingdotgg#13207)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 23, 2026
## What's Changed
* hatch/variant functions by @juliusmarminge in pingdotgg/t3code#13191
* refactor(web): context chips render through one ContextChip component by @juliusmarminge in pingdotgg/t3code#13192
* refactor(web): ui components drop their secondary className props by @juliusmarminge in pingdotgg/t3code#13193
* refactor(web): menu triggers and items stop restyling ui/menu by @juliusmarminge in pingdotgg/t3code#13205
* refactor(web): field controls stop restyling Input, Select, Combobox and Command by @juliusmarminge in pingdotgg/t3code#13206
* refactor(web): app code stops restyling sidebar, popover, table and misc ui exports by @juliusmarminge in pingdotgg/t3code#13207
* refactor(web): Button consumers outside the composer stop restyling it by @juliusmarminge in pingdotgg/t3code#13208
* refactor(web): composer controls own their look instead of restyling ui components by @juliusmarminge in pingdotgg/t3code#13209
* chore(web): no-restyle fails lint, and the ceiling gate goes by @juliusmarminge in pingdotgg/t3code#13210
* fix(mobile): recover from screen render errors by @juliusmarminge in pingdotgg/t3code#13197
* feat(web): navigate back and forward with mod+[ and mod+] by @juliusmarminge in pingdotgg/t3code#13212
* fix(web): sort title matches by recent activity by @Yash-Singh1 in pingdotgg/t3code#13219
* test(desktop): remove redundant keyring module-load test by @t3-code[bot] in pingdotgg/t3code#13220


**Full Changelog**: pingdotgg/t3code@v0.0.43-nightly.20260923.2135...v0.0.43-nightly.20260923.2150

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.43-nightly.20260923.2150
TonybynMp4 added a commit to TonybynMp4/t3code that referenced this pull request Sep 23, 2026
…sed variants

0006 was generated against a sidebar blob that only existed locally, so CI's
depth-1 fetch could not 3-way merge it and the plain fallback broke on
upstream pingdotgg#13207's Separator change. Regenerated against main.

The stale-patch report now treats NNNN variants as alternatives, like the
apply script, instead of listing the unused variant of a working group.

Closes #15

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant