Conversation
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — Although the diff is small and leaves builds without You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe Android library now reads the ChangesAndroid build configuration
Estimated code review effort: 1 (Trivial) | ~2 minutes Suggested reviewers: Merge Risk: ⚪ Minimal · up to The terminal Android module now builds only requested native ABIs when configured, while retaining default ABI behavior otherwise. The change is ready to merge with minimal current risk. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Answering the approvability hold, since the concern is about ABI coverage rather than a defect in the diff. The property has exactly one producer in this repo, ...(abis.length > 0 ? [`-PreactNativeArchitectures=${abis.join(",")}`] : []),so the value is always a comma-joined list with no spaces and no empty elements. Those ABIs come from real attached devices, not a static matrix — The no-property path is provably unchanged. When no android device is captured, The shape matches the React Native template verbatim — same def reactNativeArchitectures() {
def value = project.getProperties().get("reactNativeArchitectures")
return value ? value.split(",") : ["armeabi-v7a", "arm64-v8a", "x86", "x86_64"]
}
...
ndk { abiFilters (*reactNativeArchitectures()) }RN does not trim elements either, so this does not introduce a handling difference from the framework convention. On the bug being fixed: One deliberate omission: |
6aaa461 to
94f7385
Compare
Fixes reproduced on an Android emulator and from upstream reports. Feed: Android stops drawing a text view past the GPU's maximum texture height, so a long list rendered as one selectable Text lost its tail and took seconds per frame to draw. Long lists now split into 40-item chunks. Wide assistant markdown blocks keep a pinned width; the feed reserves bottom padding. Keyboard: the feed re-pins after keyboard transitions settle and when the composer collapses; the back gesture collapses the composer; sticky composers only follow the keyboard after a fresh show or real focus (upstream pingdotgg#8212). Terminal: hardware Enter no longer moves focus off the terminal; keyboards that use deleteSurroundingText (FUTO) send Backspace; forward delete works. Also: stream haptics no longer buzz every 320ms on Android and all haptics use the system engine; thread settings apply on tap without Save; typed pairing codes are normalized to the server format; non-git projects fall back to the current checkout instead of a dead worktree default; user CA certificates are trusted; Ctrl/Cmd+Enter sends from a hardware keyboard; thread rename, project favicons in the filter, tablet sidebar toggle, desktop-window density, route titles, Material You review colors, bottom gesture-bar insets, and the composer placeholder clipping (upstream PRs pingdotgg#11503, pingdotgg#11370, pingdotgg#11339, pingdotgg#8200, pingdotgg#8717, pingdotgg#11445, pingdotgg#6003, pingdotgg#5052, pingdotgg#8362, pingdotgg#10709, pingdotgg#11611, pingdotgg#8800, adapted).
94f7385 to
c0a02a5
Compare
What Changed
The terminal Android module now applies
reactNativeArchitecturesto its NDK ABI filters when the property is supplied. When it is absent, the module retains its existing defaults.Why
Building with
-PreactNativeArchitectures=arm64-v8astill scheduled terminal CMake builds for all four ABIs, even though the APK only needed ARM64. Honoring the requested architectures avoids this unnecessary native compilation.Validation on Windows with Gradle 9.3.1:
arm64-v8a, and exactly ARM64 and x86_64 forarm64-v8a,x86_64.llvm-readelfconfirmed the resultinglibt3terminal.sois an AArch64 shared library.git diff --checkpassed. A full APK build was not repeated for this change.Checklist
Prepared with GPT-6 in the Codex desktop app.
Note
Honor
reactNativeArchitecturesfor Android NDK ABI filters int3-terminalAdds conditional logic to build.gradle that reads the
reactNativeArchitecturesproject property and applies it as NDK ABI filters when present. Without the property, build behavior is unchanged.Macroscope summarized 6aaa461.
Summary by CodeRabbit
reactNativeArchitecturesbuild setting.