fix(mobile): recover from render errors in-place with scoped boundaries

A render error anywhere in the mobile app previously reached the global fatal
handler, and expo-updates' ErrorRecovery killed the process. Wrap every root
navigation route (navigator screenLayout) and the thread feed in their own
error boundary: the failed subtree is replaced by a recovery view (retry,
copy diagnostics, go back) while the native header, navigation, and the rest
of the stack stay alive. Caught errors are recorded in a session-scoped
render-error log (deduped by error identity so nested boundaries report once)
and surfaced on the Settings > Diagnostics screen next to the existing
expo-updates startup-crash log, which keeps covering only process fatals.
bf13cdf74fJulius Marminge committed on 9/22/2026, 11:00:56 PMparentd7819c1
6 files changedLine totals unavailable