Skip to content

refactor(mobile): git sheets use uniwind platform variants instead of className ternaries - #13185

Merged
juliusmarminge merged 1 commit into
agent/mobile-audit-uniwind-platform-variantsfrom
agent/remigrate-git-sheets-platform-variants
Sep 23, 2026
Merged

juliusmarminge merged 1 commit into
agent/mobile-audit-uniwind-platform-variantsfrom
agent/remigrate-git-sheets-platform-variants

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

The problem

The Git sheets used Platform.OS ternaries over className strings for styling-only divergence. #13161 migrated them to ios:/android: Uniwind class variants and was reverted by #13169, because Uniwind 1.11.0 dropped the platform guard for every utility past the first of each @media ios/@media android block \u2014 Android classes kept applying on iOS and vice versa. The revert explicitly gated re-landing on the compiler being fixed and re-proved on devices.

How this fixes it

Stacked on #13172, which patches that compiler bug (media queries now outlive the reset between a block's sibling rules) and pins it with compiled-output tests. On top of that, this re-lands the original migration (ec28eefa0d0, reverting its revert 6dcde218ad6):

  • Styling-only divergence -> ios:/android: class variants ("android:shrink android:grow-0 ios:flex-1", ios:rounded-[22px] vs android:rounded-[20px], font-weight families, etc.) \u2014 ~165 fewer lines of className ternary machinery across five files.
  • Behavior/structure divergence stays in JS: Android native-sheet variants, runtime maxHeight: windowHeight * 0.92 inline styles, conditional icon rendering, numeric size props.

Base note: targets agent/mobile-audit-uniwind-platform-variants; retarget to main once #13172 merges. Merging this before #13172 would ship unguarded variants \u2014 exactly what #13169 reverted.

Verification

Co-Authored-By: Apex noreply@callstack.com


Devin Review

Summary by CodeRabbit

  • Style
    • Updated Git-related sheets in the mobile app with platform-specific styling for Android and iOS.
    • Preserved existing layouts, spacing, colors, typography, controls, and interaction states across branch, commit, confirmation, and overview screens.
    • Maintained existing commit selection, editing, validation, reset, and action behavior.

… className ternaries

Re-lands ec28eef, which was reverted by #13169 because Uniwind 1.11.0
dropped the platform guard past the first utility of each @media ios/
android block. That compiler bug is fixed by the patched pipeline on this
stack (uniwind media-query fix + compiled-output tests + real-bundle
verification). Styling divergence moves from Platform.OS ternaries over
className strings to ios:/android: class variants; behavior branching
stays in JS.
@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
@juliusmarminge
juliusmarminge added this pull request to stack #13186 September 23, 2026 02:25
@macroscopeapp

macroscopeapp Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 25d82da

Macroscope's review found this PR approvable — This change only rewrites existing iOS/Android styling conditionals into guarded Uniwind platform variants across the Git sheets. Existing actions, layouts, and platform-specific behavior remain intact, with compiler tests and bundle checks covering the platform isolation.

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

@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.4 KiB — 7.8 KiB ✅
Codex Live turn WebSocket decoded — 56.2 KiB — 66.4 KiB ✅
Codex Live turn messages — 9 — 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: 25d82da · 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: 113.9 KiB
  • Claude decoded thread snapshot: 114.7 KiB

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

@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: 09660dad-48d7-416c-8f45-dc2574ecb4d5

📥 Commits

Reviewing files that changed from the base of the PR and between 343aa08 and 25d82da.

📒 Files selected for processing (5)
  • apps/mobile/src/features/threads/git/GitBranchesSheet.tsx
  • apps/mobile/src/features/threads/git/GitCommitSheet.tsx
  • apps/mobile/src/features/threads/git/GitConfirmSheet.tsx
  • apps/mobile/src/features/threads/git/GitOverviewSheet.tsx
  • apps/mobile/src/features/threads/git/gitSheetComponents.tsx

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


📝 Walkthrough

Walkthrough

Changes

Git sheet styling

Layer / File(s) Summary
Shared sheet component styling
apps/mobile/src/features/threads/git/gitSheetComponents.tsx
MetaCard and SheetListRow replace runtime platform styling with NativeWind modifiers while retaining platform-specific layout, state, shape, and typography.
Branch and commit sheet styling
apps/mobile/src/features/threads/git/GitBranchesSheet.tsx, apps/mobile/src/features/threads/git/GitCommitSheet.tsx
Platform-specific classes now define sheet, card, row, input, text, and action styling. Branch and commit behavior remains unchanged.
Confirmation and overview sheet styling
apps/mobile/src/features/threads/git/GitConfirmSheet.tsx, apps/mobile/src/features/threads/git/GitOverviewSheet.tsx
Confirmation and overview layouts now use platform-specific utility classes. Existing Android and iOS visual distinctions remain represented.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Refactor

Suggested reviewers: pixpmusic

Merge Risk: ⚪ Minimal · up to 25d82

The Git sheet styling migration does not show an actionable compatibility or runtime regression in the reviewed change set.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 5 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: replacing className ternaries with Uniwind platform variants in the mobile Git sheets.
Description check ✅ Passed The description clearly explains the problem, solution, dependency on #13172, verification steps, and target branch. It does not use the template headings, include the required checklist, or provide b…
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.
  • 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 21be723 into main Sep 23, 2026
23 of 24 checks passed
@juliusmarminge
juliusmarminge deleted the agent/remigrate-git-sheets-platform-variants branch September 23, 2026 02:36
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 23, 2026
## What's Changed
* chore(mobile): drop dead nitro-markdown tgz override and @expo/metro-runtime by @juliusmarminge in pingdotgg/t3code#13148
* feat(web): show settings scope as a sentence at the top of the page by @juliusmarminge in pingdotgg/t3code#13139
* refactor(web): move settings scope pickers into breadcrumbs by @Yash-Singh1 in pingdotgg/t3code#13165
* feat(auth): share provider sign-in flows and credential bindings by @juliusmarminge in pingdotgg/t3code#12983
* refactor(mobile): git sheets use uniwind platform variants instead of className ternaries by @juliusmarminge in pingdotgg/t3code#13161
* chore(mobile): name the two project favicon caches by their job by @juliusmarminge in pingdotgg/t3code#13160
* revert(mobile): git sheets back to Platform.OS ternaries (un-guarded uniwind variants broke both platforms) by @juliusmarminge in pingdotgg/t3code#13169
* docs(mobile): document the two mobile routes that intentionally skip deep links by @juliusmarminge in pingdotgg/t3code#13164
* refactor(mobile): break module cycles with focused extractions by @juliusmarminge in pingdotgg/t3code#13151
* fix(server): generate PR diffs from branch changes by @Yash-Singh1 in pingdotgg/t3code#13170
* fix(web): preserve nested scroll behavior in chat timeline by @Yash-Singh1 in pingdotgg/t3code#13167
* test(web): cover usage model ordering without static markup by @flamboh in pingdotgg/t3code#13104
* fix(desktop): find linuxbrew node for the WSL backend by @CodyRay in pingdotgg/t3code#7827
* chore(models): use GPT-6 Luna for text generation by @extoci in pingdotgg/t3code#13115
* fix(mobile): keep ordinary offline outbox failures out of console.warn by @juliusmarminge in pingdotgg/t3code#13144
* feat(providers): check remote compatibility ranges by @juliusmarminge in pingdotgg/t3code#13130
* chore(lint): keep mobile theme escape-hatch allowlist honest by @juliusmarminge in pingdotgg/t3code#13146
* fix(web): the pull request badge reads at the meta size again by @juliusmarminge in pingdotgg/t3code#13175
* fix(mobile): uniwind platform variants stay guarded on both platforms by @juliusmarminge in pingdotgg/t3code#13172
* refactor(mobile): git sheets use uniwind platform variants instead of className ternaries by @juliusmarminge in pingdotgg/t3code#13185
* refactor(mobile): remaining className platform ternaries become class variants by @juliusmarminge in pingdotgg/t3code#13188
* fix(web): align provider emails without clipping by @Derpedyea in pingdotgg/t3code#13174
* perf(mobile): recycle the default v2 home list and scope the snooze minute tick by @juliusmarminge in pingdotgg/t3code#13149
* refactor(mobile): retire the legacy grouped thread list by @juliusmarminge in pingdotgg/t3code#13183
* fix(server): background PR checks spend less GitHub quota by @juliusmarminge in pingdotgg/t3code#13189
* fix(server): background PR sync reads summaries in batches by @juliusmarminge in pingdotgg/t3code#13198
* fix(server): GitHub PR lookups stop probing owner-qualified heads by @juliusmarminge in pingdotgg/t3code#13200
* chore(mobile): clear the legacy-list deletion fallout by @juliusmarminge in pingdotgg/t3code#13203

## New Contributors
* @CodyRay made their first contribution in pingdotgg/t3code#7827

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

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.43-nightly.20260923.2135
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