v2.5.0
GraphQL operation names in the network tools
Every GraphQL call in an app posts to the same endpoint, so request lists read as an undifferentiated column of /graphql and URL search could not tell them apart. The operation name is now derived from the captured request body:
[sdk-m7h9-10] POST 200 413ms https://example.com/graphql (GetCharacters)
get_network_requests and search_network match on the operation name as well as the URL, so you can find one call among many sharing an endpoint. get_request_details gains an Operation: line, and says so explicitly when a GraphQL endpoint has no captured body rather than going quiet.
Route history in get_screen_state
get_screen_state({includeHistory: true}) appends a route trail — which screens the app has been on, with dwell time and the route each was entered from. It survives an app restart and marks the boundary:
🕒 Route trail (most recent first):
Apollo 5s ← from TapTargets
TapTargets 6s
── app restarted (epoch 3) ──
Redux 41s ← from Tanstack
Off by default so existing output is unchanged. Capture prefers an in-app navigation listener; if none can attach it falls back to sampling and reports itself as sampled, so a thin trail is never mistaken for a complete one.
Build hygiene
Compiled output no longer carries source comments, and a new postbuild check fails the build if published output describes a third-party product's internals. This closes a gap in 2.4.0, which shipped an internal note in build/. 2.4.0 has been deprecated in favour of this release.