[codex] Add Android mobile support - #3579
Merged
Merged
Conversation
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
Why
The mobile app inherited iOS-only native modules and navigation assumptions. Android could build only after filling those native module gaps, and several shared screens rendered with incorrect insets, missing icons, inaccessible controls, or desktop/iOS-oriented interaction patterns.
The review diff also scrolled its entire native canvas horizontally, which moved line gutters and file headers with the code. It now owns horizontal code offset internally so persistent chrome stays fixed.
Impact
Android now has a usable end-to-end thread, file, Git review, composer, and connection flow. The iOS implementation keeps using its existing native toolbar and form-sheet behavior through platform-specific branches.
Validation
vp checkvp run typecheckvp run lint:mobile./gradlew :t3tools-mobile-review-diff-native:compileDebugKotlin./gradlew :app:assembleDebugNote
Add Android support to the mobile app
libghostty-vtwith a custom canvas view (TerminalCanvasView.kt) for font metrics, styling, and cursor blinkingexpo-symbolsusage across the codebaseOverlayPortalto avoid keyboard focus loss, and wiresControlPillMenuto use it on Android.solibraries for four ABIs; any ABI mismatch or library loading failure will crash the terminal viewChanges since #3579 opened
📊 Macroscope summarized 80cf687. 10 files reviewed, 0 issues evaluated, 0 issues filtered, 0 comments posted
🗂️ Filtered Issues
No issues evaluated.
Note
High Risk
Large new native/Android surface (review diff, composer, terminal JNI and prebuilt libs) plus iOS entitlement gating; regressions or load failures would hit core editing, review, and terminal flows.
Overview
Adds Android Expo modules for the composer editor, header buttons, and review diff so JS can use the same view contracts as iOS, including a custom canvas diff surface with fixed gutters, sticky file headers, async JSON decoding, and scroll/tap events.
Build and platform config:
app.config.tsgains an opt-in iOS Personal Team mode (T3CODE_IOS_PERSONAL_TEAM+ bundle ID validation) that drops widgets, push, app groups, and native Sign in with Apple; Clerk’sappleSignInplugin flag follows that mode. Android picks up predictive back,expo-quick-actions,expo-asset, and several Gradle/UI config plugins. Docs add Personal Team andios:release(Metro-free Release) flows; Metro blocks the repo.t3directory from the bundle.Terminal: Android is documented and vendored with pinned
libghostty-vt(headers/libs) for VT parsing/rendering, separate from the existing iOS GhosttyKit fork.Minor UI tweak: lighter translucent card tokens in
global.css.Reviewed by Cursor Bugbot for commit 80cf687. Bugbot is set up for automated code reviews on this repo. Configure here.