Changelog
Every SDK release and every visible change to the console and the ingest platform. SDK lines receive fixes for eighteen months after the next major release.
iOS 2.9.1iOS
Frame tracking fix for the current iOS beta
- FixedA crash in the frame tracker when CADisplayLink reported a zero-duration frame on the current iOS beta.
- FixedScreen names for SwiftUI views wrapped in
NavigationStackinside aTabViewwere reported as the tab's name. - ChangedUpload retries now honour
Retry-Afterdown to one second instead of rounding up to five.
Android 2.9.0Android
Exit reasons, Compose navigation and a smaller start
- AddedANRs and low-memory kills are reported from
ApplicationExitInfoon the next launch, even when the watchdog could not capture them. - AddedAutomatic screen names for Compose Navigation 2.8 destinations, including typed routes.
- ChangedInitialisation on the main thread is 15% shorter; the SDK now adds 2.9 ms to cold start at p95 on our reference devices.
- ChangedMinimum AGP raised to 8.0.
iOS 2.9.0iOS
SwiftUI names, screenReady and privacy manifest update
- Added
.gatepostScreen(_:)view modifier andGatepost.screenReady(_:)for screens that load content asynchronously. - AddedTLS handshake and connection reuse are now reported per request.
- ChangedPrivacy manifest updated with the system boot time reason code used for monotonic timing.
- FixedCold start was occasionally reported as warm after a background app refresh.
React Native 1.6.2React Native
Expo config plugin fix
- FixedThe Expo config plugin did not inject the project key on Android when
app.config.jsexported a function. - FixedDuplicate request events when a fetch polyfill and the native client both observed the same request.
Flutter 1.4.0Flutter
go_router support and an http client wrapper
- Added
GatepostNavigatorObserverworks with go_router and reports named routes. - Added
GatepostHttpClientwraps anyhttp.Client; the dio interceptor is unchanged. - ChangedDart errors captured through
Gatepost.runZonedinclude the last five screens as breadcrumbs.
ConsoleConsole
Release comparison and webhook alerts
- AddedCompare any two releases side by side across app start, screens, network and crash-free rate, with the difference highlighted per metric.
- AddedAlerts can call an HTTP webhook with a signed JSON payload in addition to email, Slack and Telegram.
- ChangedSession trace pages load the first screen before the rest of the timeline, which makes large sessions open faster.
Android 2.8.3Android
ViewPager2 and R8 full mode
- FixedFragments inside ViewPager2 produced duplicate screen events when the pager preloaded neighbours.
- FixedConsumer rules updated for R8 full mode so trace attribute names are not stripped.
iOS 2.8.2iOS
Scrubber patterns from the console
- AddedAdditional PII scrubber patterns configured in the console are applied to crash messages and trace attributes on the device.
- FixedTLS timing was missing for requests that reused a connection on iOS 18.4 and later.
React Native 1.6.0React Native
New architecture and Hermes source maps
- AddedFull support for the new architecture with TurboModules; the old bridge remains supported.
- Added
gatepost-cli upload-sourcemapunderstands Hermes bytecode bundles. - ChangedMinimum React Native version raised to 0.73.
iOS 2.8.0, Android 2.8.0iOS Android
Child spans and remote sampling
- AddedCustom traces can have child spans, up to 256 per trace.
- AddedSample rate, ignored hosts and upload interval can be changed from the console without a new build.
- ChangedBatches are now capped at 256 KB compressed and split automatically.
Ingest platformPlatform
South America region and clearer rate limiting
- AddedCollectors in South America. Projects with a South America home region are stored there.
- Changed
429responses always carryRetry-After; SDKs from 2.8 honour it. - ChangedThe
/diagnosticspage on every collector now shows the answering region.