You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -172,5 +170,3 @@ Keep `HAS_LOADED_APP` and the cold-restart fallback. The queue hook is the prima
172
170
Report skeleton consumers use `useIsReportLoadPending(reportID)` wherever pending `OpenReport` work is part of the loading decision. They keep existing readiness checks, including `hasOnceLoadedReportActions`, report data completeness, and offline behavior. A stranded `isLoadingInitialReportActions` value without a matching queue request or in-memory latch must not show a skeleton.
173
171
174
172
Do not remove the legacy fields as part of this migration. `IS_LOADING_APP` and report loading state still support recovery, report positioning, navigation guards, and the deferred-flush bridge. Skeleton consumers should use the public hooks. Full flag deletion is outside this plan.
175
-
176
-
**Keep telemetry for a terminal request that still shows a skeleton.**`useSkeletonSpan` in `src/libs/telemetry/useSkeletonSpan.ts` and the `reasonAttributes` prop on `ActivityIndicator` record a span while a skeleton is mounted. They flag skeletons that remain past `CONST.TELEMETRY.CONFIG.SKELETON_MIN_DURATION`. Pass `SkeletonSpanReasonAttributes` with a `context` for the screen and any state that explains the render, such as `isOffline`. This makes the case queryable under the `skeleton.` namespace.
Copy file name to clipboardExpand all lines: contributingGuides/OBSERVABILITY.md
+2-14Lines changed: 2 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,17 +37,6 @@ Minimum set of parameters required to create a span:
37
37
38
38
**Span configuration**: Set of parameters passed to `Sentry.startInteractiveSpan`. See the [Sentry docs](https://docs.sentry.io/platforms/react-native/tracing/instrumentation/custom-instrumentation/#starting-inactive-spans-startinactivespan) for more details.
39
39
40
-
Additional parameters can be added as a config object (third parameter):
41
-
42
-
**Minimum Duration**: what's the minimum duration of a span. Spans shorter than this duration are discarded.
Copy file name to clipboardExpand all lines: contributingGuides/OBSERVABILITY_METRICS.md
-11Lines changed: 0 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -172,17 +172,6 @@ This document lists all implemented telemetry metrics in the Expensify App.
172
172
**End**: Immediately after start (tracking occurrence, not duration) ([`src/libs/telemetry/useAbsentPageSpan.ts`](https://github.com/Expensify/App/blob/8f123f449f1a4533830b18a1040c9a5f1949821d/src/libs/telemetry/useAbsentPageSpan.ts#L39))
- Reason: Fixes a fatal Android HybridApp crash (APP-HNA) — a SIGSEGV in `findShadowNodeByTagRecursively` reached via `FabricUIManagerBinding::findNextFocusableElement` during focus navigation (D-pad / hardware-keyboard Tab / accessibility focus) inside a scroll view. `UIManager::findShadowNodeByTag_DEPRECATED` has two paths gated on RN's `fixFindShadowNodeByTagRaceCondition` feature flag: the safe path holds the root node alive via a `shared_ptr` for the entire traversal, while the flag-off path grabs a raw root pointer via `tryCommit` (immediately cancelled) that keeps nothing alive. The flag defaults to `false`, so a concurrent commit/unmount on the background thread can free the shadow subtree mid-traversal, leaving a dangling `shared_ptr` that segfaults at `ShadowNode::getTag()`. This patch removes the flag gate and unconditionally uses the safe `shared_ptr`-holding path. Upstream removed the flag (making the safe path the default) in RN 0.87.0, so this patch can be dropped once we upgrade to RN >= 0.87.0.
340
+
- Upstream PR/issue: https://github.com/facebook/react-native/pull/55751 (introduced the fix behind the `fixFindShadowNodeByTagRaceCondition` flag) and https://github.com/facebook/react-native/pull/56850 (removed the flag in RN 0.87.0)
0 commit comments