refactor(mobile): git sheets use uniwind platform variants instead of className ternaries - #13185
Conversation
… 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.
ApprovabilityVerdict: Approved at 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. |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 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.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
|
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 configurationConfiguration used: Repository: pingdotgg/t3code/.coderabbit.yaml Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (5)
Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughChangesGit sheet styling
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Refactor Suggested reviewers: Merge Risk: ⚪ Minimal · up to 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)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
## 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
The problem
The Git sheets used
Platform.OSternaries overclassNamestrings for styling-only divergence. #13161 migrated them toios:/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 androidblock \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 revert6dcde218ad6):ios:/android:class variants ("android:shrink android:grow-0 ios:flex-1",ios:rounded-[22px]vsandroid:rounded-[20px], font-weight families, etc.) \u2014 ~165 fewer lines of className ternary machinery across five files.maxHeight: windowHeight * 0.92inline styles, conditional icon rendering, numericsizeprops.Base note: targets
agent/mobile-audit-uniwind-platform-variants; retarget tomainonce #13172 merges. Merging this before #13172 would ship unguarded variants \u2014 exactly what #13169 reverted.Verification
tsc --noEmit, mobilesrc/libsuite (43 files / 613 tests),dependency-graph.test.tsall pass.expo export, this branch): every migrated class is platform-guarded \u2014 the iOS stylesheet contains none ofandroid:shrink,android:grow-0,android:gap-1/gap-2,android:p-2,android:rounded-[20px],android:font-t3-mediumand the Android stylesheet contains none ofios:flex-1,ios:flex-row,ios:border,ios:gap-3,ios:rounded-[22px],ios:font-t3-bold,ios:font-[family-name:Menlo],ios:pt-[72px]. (The same grep on revert(mobile): git sheets back to Platform.OS ternaries (un-guarded uniwind variants broke both platforms) #13169's head showed the leak.)Co-Authored-By: Apex noreply@callstack.com
Summary by CodeRabbit