Conversation
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This focused Android fix changes the existing Reanimated event path to skip dispatch and UI-operation flushing when no animation listener is present. Because it gates significant downstream work on runtime handler state, the behavior change warrants human review. Notes:
You can add or adjust custom eligibility rules. Learn more. |
|
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: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe patch changes settled layout-animation handling in both proxies. It also changes Android UI-thread event dispatch to drop events when their names cannot be resolved or no matching handler is waiting. ChangesLayout animation settlement
Android UI event dispatch
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~15 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to No merge-blocking issue was established; the change can proceed through normal checks. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Dismissing prior approval to re-evaluate 87783f0
Android can become unresponsive while returning from Settings and scrolling a populated thread list. Captured ANRs repeatedly enter
NodesManager.onEventDispatchfrom SVG layout events, flush non-layout updates during drawing, and log missing-view exceptions fromNativeProxy.synchronouslyUpdateUIProps.Extend the existing Reanimated 4.5.5 patch to skip UI-thread events with no animation listener before dispatching or flushing operations. This follows the listener check already used by the background event queue and the C++ raw-event path. Include listeners registered without a view tag in that check, so they continue receiving events.
Verification:
This fixes the reproduced native rendering loop. It does not change cache policy or claim to resolve unrelated server/connection delays. The physical phone supplied the original ANR evidence; the patched build was verified on an emulator.
Model: OpenAI GPT-6. Harness: Codex desktop, Android emulator, ADB, Gradle release build, and a local replay fixture.
Android performance series
These are separate PRs, each reviewable on its own:
Summary by CodeRabbit