diff --git a/mobile/App.tsx b/mobile/App.tsx index d36162c..25110b0 100644 --- a/mobile/App.tsx +++ b/mobile/App.tsx @@ -60,6 +60,16 @@ if (SENTRY_DSN) { // Lokalna wersja appki — dystyngwuje builds w Sentry release filter. expo-constants // czyta `version` z `app.json` (a nie z package.json), więc tutaj `expoConfig.version`. release: `goon-mobile@${Constants.expoConfig?.version ?? '0.0.0'}`, + // Filtr szumu: Android Background ANR (łapany przez AppExitInfo) to OS zamrażający + // apkę w TLE i raportujący "nie odpowiada" — zero ramek JS/app, nic do naprawy + // (GOON-1D). Dropujemy TYLKO background; foreground ANR zostaje (realny jank). + beforeSend: (event) => { + const isAnr = event.exception?.values?.some( + (v) => v?.type === 'ApplicationNotResponding' || /\bANR\b/.test(v?.value || ''), + ); + if (isAnr && event.contexts?.app?.in_foreground === false) return null; + return event; + }, // Boot diagnostic: jeden message przy starcie z tagiem `source:boot` pozwala // potwierdzić że SDK rzeczywiście wysyła. Jeśli w Sentry nie ma go po starcie // appki → init nie startuje albo zaprzeszł blockera (network/DNS/uplink).