Skip to content

fix(web): appearance classes use theme tokens and scale values - #13397

Merged
juliusmarminge merged 1 commit into
lint/raw-colorsfrom
lint/arbitrary-values
Sep 24, 2026
Merged

juliusmarminge merged 1 commit into
lint/raw-colorsfrom
lint/arbitrary-values

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

Turns on @shadcn/lint no-arbitrary-values as an error in web app code, with allow: ["layout", "transition"]. Findings go from 479 to 0.

New theme tokens (apps/web/src/index.css):

  • text-2xs (11px) and text-3xs (10px): the two sizes below xs, used at about 260 sites app-wide. Other sizes fold in: 11px, 0.6875rem and .7rem become 2xs; 10px, .65rem, .6rem, 9px, 8px and 7px become 3xs. Both are registered with tailwind-merge; otherwise cn() reads text-2xs as a colour and drops it next to text-muted-foreground.
  • ease-drawer: the decelerating curve the composer context controls already shared at 6 sites. Two one-off curves fold into it: the composer "new" pop and the provider update pill.
  • shadow-composer / shadow-composer-dark: the composer's own elevation, shared by the composer, its context strip and attached banners. It's unchanged.
  • Two named background images: the dark-mode seam shading where banners meet the composer. It's unchanged.
  • --workspace-gutter(-start/-end): the page gutter that the workspace header and the chat column previously each copied as the same calc(env(...)) classes.

Allowed in the config, each with a comment:

  • transition class group: which properties an element animates is per-element behaviour, like layout. Every transition keeps the exact property list it had, and none widen to all. Timing curves and durations still come from the theme.
  • Em-sized chip spacing, so chips scale with the prompt font.
  • rounded-[inherit] overlays.
  • The proportional project-icon corner, and the container-sized emoji icon.
  • The OS selection colour on selected chips.
  • The Cursor, Grok and Claude brand fills.
  • The T3 sign-in masthead, which is brand artwork.

Visible changes:

  • 9, 8 and 7px text becomes 10px: provider instance badges and PR avatar initials.
  • 13px text becomes 12px for Settings descriptions and provider status lines, and 14px for titles, diff comments and diagnostics labels.
  • Uppercase labels use tracking-widest.
  • The favicon image corner becomes 25%, matching the monogram.
  • The Diagnostics cards use the shadow-xs/shadow-sm scale.
  • The stash count, SnapShot contents and provider-pill countdown animate with starting: transitions instead of keyframes.

Third layer of the stack after #13366 and #13371. With all three, web code has 0 findings across no-restyle, no-unknown-classes, require-static-classes, no-raw-colors and no-arbitrary-values, and the full web test suite passes.

Claude Opus 5.5 via Claude Code.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Style
    • Standardized typography, spacing, colors, and transitions across the interface for a more consistent appearance.
    • Refined composer surfaces and animations, including support for reduced-motion preferences.
    • Updated workspace gutters and desktop title-bar spacing.
    • Hid the preview badge on small screens.

Before / after

Before (main) After
Settings row descriptions (13px to 12px) Settings rows before, 13px descriptions Settings rows after, 12px descriptions
Uppercase table headers (tracking) Diagnostics table header before Diagnostics table header after, tracking-widest

@juliusmarminge
juliusmarminge added this pull request to stack #13372 September 24, 2026 10:17
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Sep 24, 2026
@github-actions

github-actions Bot commented Sep 24, 2026 •

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.5 KiB — 7.8 KiB ✅
Claude Live turn WebSocket decoded — 57.1 KiB — 66.4 KiB ✅
Claude Live turn messages — 10 — 21 ✅

Baseline: unavailable · PR result: 7b3d869 · 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 24, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This is a broad production UI styling refactor that changes shared theme tokens, global class-merging behavior, composer effects, layout insets, and many existing screens. It also adds a file-level lint suppression for an auth component, so the change requires human review.

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

@coderabbitai

coderabbitai Bot commented Sep 24, 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: 176b80ad-fea4-4d4b-a340-22fceb106401

📥 Commits

Reviewing files that changed from the base of the PR and between 3e8da02 and 2e05b91.

📒 Files selected for processing (109)
  • apps/web/src/browser/BrowserDeviceToolbar.tsx
  • apps/web/src/browser/HostedBrowserWebview.tsx
  • apps/web/src/components/AgentsPanel.tsx
  • apps/web/src/components/BranchToolbar.tsx
  • apps/web/src/components/BranchToolbarBranchSelector.tsx
  • apps/web/src/components/BranchToolbarEnvModeSelector.tsx
  • apps/web/src/components/BranchToolbarEnvironmentSelector.tsx
  • apps/web/src/components/ChatMarkdown.tsx
  • apps/web/src/components/ChatView.tsx
  • apps/web/src/components/ComposerPromptEditorTiptap.tsx
  • apps/web/src/components/ContextChip.tsx
  • apps/web/src/components/DiffPanel.tsx
  • apps/web/src/components/DiffPanelShell.tsx
  • apps/web/src/components/LegacySidebar.tsx
  • apps/web/src/components/ProjectFavicon.tsx
  • apps/web/src/components/PullRequestContextDetails.tsx
  • apps/web/src/components/RightPanelTabs.tsx
  • apps/web/src/components/Sidebar.tsx
  • apps/web/src/components/SlowRpcRequestToastCoordinator.tsx
  • apps/web/src/components/ThreadStatusIndicators.tsx
  • apps/web/src/components/ThreadTerminalDrawer.tsx
  • apps/web/src/components/WorkspaceBreadcrumb.tsx
  • apps/web/src/components/WorkspacePageHeader.tsx
  • apps/web/src/components/auth/AuthSurfaceShell.tsx
  • apps/web/src/components/chat/AssistantCitationChip.tsx
  • apps/web/src/components/chat/ChangedFilesTree.tsx
  • apps/web/src/components/chat/ChatComposer.tsx
  • apps/web/src/components/chat/ChatHeader.tsx
  • apps/web/src/components/chat/ComposerBanner.tsx
  • apps/web/src/components/chat/ComposerBannerStack.tsx
  • apps/web/src/components/chat/ComposerControl.tsx
  • apps/web/src/components/chat/ComposerPendingApprovalPanel.tsx
  • apps/web/src/components/chat/ComposerPendingUserInputPanel.tsx
  • apps/web/src/components/chat/ComposerPrimaryActions.tsx
  • apps/web/src/components/chat/ComposerStashBadge.tsx
  • apps/web/src/components/chat/ComposerSurface.tsx
  • apps/web/src/components/chat/ComposerTasksBadge.tsx
  • apps/web/src/components/chat/ContextWindowMeter.tsx
  • apps/web/src/components/chat/ExpandedImageDialog.tsx
  • apps/web/src/components/chat/MessagesTimeline.tsx
  • apps/web/src/components/chat/ModelListRow.tsx
  • apps/web/src/components/chat/ModelPickerSidebar.tsx
  • apps/web/src/components/chat/PanelLayoutControls.tsx
  • apps/web/src/components/chat/ProposedPlanCard.tsx
  • apps/web/src/components/chat/ProviderInstanceIcon.tsx
  • apps/web/src/components/chat/ProviderModelPicker.test.tsx
  • apps/web/src/components/chat/ProviderModelPicker.tsx
  • apps/web/src/components/chat/SnapShotAttachmentDetails.tsx
  • apps/web/src/components/chat/WorktreeSetupCard.tsx
  • apps/web/src/components/clerk/ClerkUserProfilePage.tsx
  • apps/web/src/components/clerk/MobileClientsUserProfilePage.tsx
  • apps/web/src/components/clerk/T3ConnectUserProfilePage.tsx
  • apps/web/src/components/cloud/ConnectCliAuthSurface.tsx
  • apps/web/src/components/composerContextPresentation.tsx
  • apps/web/src/components/contextChipParts.tsx
  • apps/web/src/components/device/DeviceStreamView.tsx
  • apps/web/src/components/device/DeviceToolsPanel.tsx
  • apps/web/src/components/diffs/DiffCommentAnnotation.tsx
  • apps/web/src/components/files/FilePreviewPanel.tsx
  • apps/web/src/components/files/fileSurfaceChrome.tsx
  • apps/web/src/components/onboarding/WelcomeWizard.tsx
  • apps/web/src/components/preview/AgentBrowserCursor.tsx
  • apps/web/src/components/preview/BrowserMockup.tsx
  • apps/web/src/components/preview/PreviewPanelShell.tsx
  • apps/web/src/components/pullRequest/PullRequestCodeTab.tsx
  • apps/web/src/components/pullRequest/PullRequestComposer.tsx
  • apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx
  • apps/web/src/components/pullRequest/PullRequestLinkPreview.tsx
  • apps/web/src/components/pullRequest/PullRequestListRow.tsx
  • apps/web/src/components/pullRequest/PullRequestRow.tsx
  • apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx
  • apps/web/src/components/pullRequest/PullRequestTimelineTab.tsx
  • apps/web/src/components/pullRequest/ThreadPullRequestsPanel.tsx
  • apps/web/src/components/pullRequest/pullRequestPresentation.tsx
  • apps/web/src/components/search/HighlightedSearchLine.tsx
  • apps/web/src/components/search/ProjectContentSearchDialog.tsx
  • apps/web/src/components/settings/AddProviderInstanceDialog.tsx
  • apps/web/src/components/settings/ConnectionsSettings.tsx
  • apps/web/src/components/settings/CustomModelEditor.tsx
  • apps/web/src/components/settings/DiagnosticsSettings.tsx
  • apps/web/src/components/settings/FontFamilyPicker.tsx
  • apps/web/src/components/settings/KeybindingsSettings.tsx
  • apps/web/src/components/settings/OpenSourceLicenses.tsx
  • apps/web/src/components/settings/PanelAnimationsPreview.tsx
  • apps/web/src/components/settings/ProjectActionsList.tsx
  • apps/web/src/components/settings/ProviderInstanceCard.test.ts
  • apps/web/src/components/settings/ProviderInstanceCard.tsx
  • apps/web/src/components/settings/ProviderModelsSection.tsx
  • apps/web/src/components/settings/ProviderSettingsForm.tsx
  • apps/web/src/components/settings/RedactedSensitiveText.tsx
  • apps/web/src/components/settings/ResourceTelemetryDiagnostics.tsx
  • apps/web/src/components/settings/SettingsPanels.tsx
  • apps/web/src/components/settings/SettingsSidebarNav.tsx
  • apps/web/src/components/settings/SnapShotSetupDialog.tsx
  • apps/web/src/components/settings/SourceControlSettings.tsx
  • apps/web/src/components/settings/ThemeColorPicker.tsx
  • apps/web/src/components/settings/ThemeImportDialog.tsx
  • apps/web/src/components/settings/ThemeSettings.tsx
  • apps/web/src/components/settings/ThemeWireframe.tsx
  • apps/web/src/components/settings/settingsLayout.tsx
  • apps/web/src/components/sidebar/SidebarProviderUpdatePill.tsx
  • apps/web/src/components/sidebar/SidebarThreadHeader.tsx
  • apps/web/src/components/sidebar/SidebarUpdatePill.tsx
  • apps/web/src/components/usage/UsageLimitsPooled.tsx
  • apps/web/src/components/usage/UsagePage.tsx
  • apps/web/src/components/usage/UsageProviderChart.tsx
  • apps/web/src/index.css
  • apps/web/src/lib/utils.ts
  • vite.config.ts

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


📝 Walkthrough

Walkthrough

The web UI replaces many fixed and arbitrary styling values with shared Tailwind utilities and CSS tokens. Changes cover typography, spacing, colors, transitions, shadows, and responsive layout. A Tailwind merge configuration and lint rule are updated to support and check the utility changes.

Changes

Web UI styling and utility alignment

Layer / File(s) Summary
Shared style tokens and utility handling
apps/web/src/index.css, apps/web/src/lib/utils.ts, vite.config.ts
Adds shared text-size, gutter, easing, shadow, and seam tokens. Configures Tailwind class merging for the new text sizes and enables an arbitrary-value lint rule with exceptions.
Workspace shell, navigation, and browser controls
apps/web/src/browser/*, apps/web/src/components/AgentsPanel.tsx, apps/web/src/components/BranchToolbar*.tsx, apps/web/src/components/BranchToolbarEnvironmentSelector.tsx, apps/web/src/components/DiffPanelShell.tsx, apps/web/src/components/LegacySidebar.tsx, apps/web/src/components/ProjectFavicon.tsx, apps/web/src/components/RightPanelTabs.tsx, apps/web/src/components/Sidebar.tsx, apps/web/src/components/SlowRpcRequestToastCoordinator.tsx, apps/web/src/components/ThreadStatusIndicators.tsx, apps/web/src/components/ThreadTerminalDrawer.tsx, apps/web/src/components/WorkspaceBreadcrumb.tsx, apps/web/src/components/WorkspacePageHeader.tsx, apps/web/src/components/sidebar/*
Updates workspace, sidebar, browser, and panel styling. Adds an inline Electron title-bar spacer when layout controls are absent.
Chat, composer, and message surfaces
apps/web/src/components/ChatMarkdown.tsx, apps/web/src/components/ChatView.tsx, apps/web/src/components/ComposerPromptEditorTiptap.tsx, apps/web/src/components/ContextChip.tsx, apps/web/src/components/chat/*, apps/web/src/components/composerContextPresentation.tsx, apps/web/src/components/contextChipParts.tsx
Updates typography and visual utilities across chat and composer surfaces. Composer stash and screenshot-panel entrances use transitions instead of keyframe animations.
Settings, account, and onboarding surfaces
apps/web/src/components/auth/*, apps/web/src/components/clerk/*, apps/web/src/components/cloud/*, apps/web/src/components/onboarding/*, apps/web/src/components/settings/*
Updates typography, spacing, shadows, and other style utilities across settings, account, authentication, and onboarding views. The settings preview badge is hidden at the small-screen breakpoint.
Pull requests, files, search, preview, and usage
apps/web/src/components/DiffPanel.tsx, apps/web/src/components/PullRequestContextDetails.tsx, apps/web/src/components/diffs/*, apps/web/src/components/device/*, apps/web/src/components/files/*, apps/web/src/components/preview/*, apps/web/src/components/pullRequest/*, apps/web/src/components/search/*, apps/web/src/components/usage/*
Updates styles across diff, pull request, file, device, preview, search, and usage views. Updates the provider model picker test to expect its new badge class.

Priority: ⬇️ Low

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

Change: Refactor

Suggested reviewers: maria-rcks, t3dotgg

Merge Risk: ⚪ Minimal · up to 2e05b

No actionable regression remains from the reviewed changes; the PR is mergeable after normal checks.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 28.17% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 71 functions across 50 files. (59 skipped… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 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 is concise and accurately summarizes the main change: replacing appearance classes with theme tokens and scale values.
Description check ✅ Passed The description clearly explains the changes, rationale, token mappings, allowed exceptions, visible UI changes, and includes before/after screenshots. It omits the template checklist and uses inline …
Full details: Docstring Coverage

Explanation

Docstring coverage is 28.17% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 71 functions across 50 files. (59 skipped: 1 unsupported, 58 over the file limit.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 2
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🛠️ Fix failing CI checks 💡
  • 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.

Enables shadcn/no-arbitrary-values as an error for apps/web/src outside
components/ui, with layout allowed. 479 findings in 112 files -> 0.

New theme tokens (index.css):
- --text-2xs (11px, line-height 1rem) and --text-3xs (10px, 0.875rem): the
  two sizes below text-xs that dense UI uses app-wide (metadata rows,
  badges, counters, kbd hints, diagnostics). 11px/0.6875rem/.7rem map to
  2xs; 10px/.65rem/.6rem/9px/8px/7px map to 3xs. Registered with
  tailwind-merge in cn(), which otherwise reads text-2xs as a colour and
  drops it next to text-muted-foreground.
- --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1), the decelerating curve the
  composer context controls already shared (6 sites). The two one-off
  curves, (.2,.8,.2,1) on the composer "new" pop and (0.22,1,0.36,1) on the
  provider update pill, map to it as well.
- Transition property lists stay as written (transition-[width],
  transition-[opacity,translate], ...): the rule allows the "transition"
  class group, because which properties an element animates is
  per-element behaviour like layout, not a design value. Every transition
  keeps exactly the properties it animated before; none widens to all.
- --shadow-composer / --shadow-composer-dark: the composer's elevation,
  shared by the composer, its context strip and attached banners.
- --background-image-composer-seam-below / -above: the dark-mode shade
  where the context strip and attached banners meet the composer.
- --workspace-gutter(-start/-end): the page header and the chat column
  shared a copied calc(env(safe-area-inset-*)+0.75rem|1.25rem) gutter.
- --font-size-prompt-touch: the prompt size on coarse-pointer phones,
  floored at 16px so iOS does not zoom on focus.

Mappings:
- 12px -> text-xs; 14px -> text-sm; 13px/0.8125rem -> text-xs for
  descriptions and text-sm for titles and body; 1.0625rem -> text-base;
  1.4rem -> text-2xl.
- Uppercase-label tracking (0.08em..0.2em) -> tracking-widest; -0.005em
  dropped; -0.05em -> tracking-tighter. leading-[1.125rem] -> leading-4.5,
  leading-[1.45] -> leading-normal.
- [transition-duration:var(--x)] -> duration-(--x).
- Other bespoke shadows -> shadow-xs/sm/md and inset-shadow-2xs with a
  colour; rgb/var colour mixes -> Tailwind colour/alpha syntax
  (bg-(--x)/(--glass-opacity), scrollbar-thumb-border/78, bg-foreground/10).
- Radii -> the theme radius scale (22/20/24px -> 3xl, 16px -> 2xl, ...).
- Masks -> mask-t/b-from/to utilities.
- One-shot keyframe animations (stash count, SnapShot contents, provider
  pill countdown) -> transitions with starting: styles; keyframes removed.
- ComposerControl icons take text-muted-foreground directly instead of a
  --control-icon-color indirection.
- The right panel tab bar reserves the 6rem beside the native window
  controls with a spacer, not a calc() padding; the empty state pads its
  list instead of calc()ing the offset.

Exemptions (each commented in vite.config.ts):
- rounded-[inherit]: overlays follow their frame's corner, set at runtime
  (floating preview) or by the element they decorate (composer outline).
- gap-[0.33em], px-[0.5em], rounded-[0.5em], text-[0.86em]: inline chips
  size in em so they scale with the prompt font-size preference.
- rounded-[25%]: project icons render 14-48px with one proportional
  corner (the favicon's 37.5% now matches the monogram's 25%).
- text-[length:80cqh]: an emoji icon fills its container.
- bg-[Highlight]: the platform selection colour on a selected chip.
- Brand fills for Cursor, Grok and Claude marks.
- AuthSurfaceShell.tsx off: the sign-in masthead is T3 brand artwork.

ContextChip's accent mixes with border/foreground (colour-mix of two
colours) are now named custom properties on the chip, read with
border-(--...) and text-(--...); the colour choices are unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@juliusmarminge
juliusmarminge merged commit f26ee08 into main Sep 24, 2026
23 of 24 checks passed
@juliusmarminge
juliusmarminge deleted the lint/arbitrary-values branch September 24, 2026 17:49
sheehanmunim added a commit to munimtechnologies/mtcode that referenced this pull request Sep 24, 2026
Conflicts, resolved onto the fork's versions:
- theme-token restyle (pingdotgg#13371, pingdotgg#13397): re-applied upstream's token edits
  (text-2xs, rounded-sm, bg-(--terminal-background), dropped panel max-h and
  heading tracking) onto the fork's restructured CommandPalette, composer
  chip, terminal drawer and settings panels.
- sidebar stage art: followed upstream in dropping the focus-ring offset
  helper; its fork test is gone and the compact-crop test now checks the
  new data-stage-art marker.
- review diff index (pingdotgg#12613): took upstream's rounded-down index mtime,
  which supersedes the fork's same-second copy.
- preview broker tests: kept the fork's profile-routing tests beside
  upstream's live-tab-owner tests.
- mobile environment row (pingdotgg#13302): kept the fork's rename button and added
  upstream's opensDetails chevron and switch alignment; the new environment
  detail screen now passes onRename too.
- AgentAwarenessRelay test: upstream's new ServerEnvironment mock gains the
  fork's setEnvironmentLabel.
- pnpm-lock.yaml regenerated from the merged manifests.

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 25, 2026
## What's Changed
* lint/unknown and static by @juliusmarminge in pingdotgg/t3code#13366
* fix(web): web colors come from theme tokens by @juliusmarminge in pingdotgg/t3code#13371
* fix(web): appearance classes use theme tokens and scale values by @juliusmarminge in pingdotgg/t3code#13397
* fix(server): keep Codex's reset answer when the re-probe fails by @juliusmarminge in pingdotgg/t3code#13363
* fix(mobile): branch search finds remote and space-typed branches by @Bil0000 in pingdotgg/t3code#13454
* chore(ci): use GPT 6 Sol Max for check agents by @juliusmarminge in pingdotgg/t3code#13473
* feat(server): show and redeem Claude banked resets by @Bil0000 in pingdotgg/t3code#13118
* fix(observability): a malformed OTEL_RESOURCE_ATTRIBUTES no longer stops startup by @yordis in pingdotgg/t3code#13469
* fix(antigravity): let Stop end commands that outlived their turn by @juliusmarminge in pingdotgg/t3code#13388
* fix(web,mobile): drop the baked-in tile from the Antigravity icon by @flamboh in pingdotgg/t3code#13373
* fix(marketing): use the official OpenCode and Antigravity logos by @flamboh in pingdotgg/t3code#13365
* fix(acp): keep one answer when a running tool reports progress by @juliusmarminge in pingdotgg/t3code#13386
* feat(web): run shell commands from chat in the thread terminal by @Bil0000 in pingdotgg/t3code#13060
* fix(antigravity): keep Windows runtime unpacking under MAX_PATH by @juliusmarminge in pingdotgg/t3code#13389
* fix(codex): the protocol generator runs again on Effect rc.115 by @juliusmarminge in pingdotgg/t3code#13480
* feat(codex): require Codex 0.156 and regenerate its protocol by @juliusmarminge in pingdotgg/t3code#13481
* feat(threads): add per-thread auto-settle switch by @t3dotgg in pingdotgg/t3code#11846
* fix(web): working and monitoring threads fade in the sidebar again by @t3dotgg in pingdotgg/t3code#13506
* fix(server): streamed section titles wait for the text under them by @t3dotgg in pingdotgg/t3code#13504
* fix(web): normalize disabled control opacity by @t3-code[bot] in pingdotgg/t3code#11441


**Full Changelog**: pingdotgg/t3code@v0.0.43-nightly.20260924.2213...v0.0.43-nightly.20260924.2223

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.43-nightly.20260924.2223
vedprakash2302 added a commit to vedprakash2302/Cody that referenced this pull request Sep 25, 2026
Upstream's lint now rejects arbitrary text sizes (pingdotgg#13397). text-2xl is the token upstream picked for the same label and matches the 24px Cody mark.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500-999 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