#[non_exhaustive]pub struct SessionLifecycleCounters {Show 13 fields
pub opened_total: u64,
pub closed_total: u64,
pub relaunch_app_total: u64,
pub terminate_app_total: u64,
pub terminate_app_via_xcuiapplication: u64,
pub terminate_app_via_fallback: u64,
pub launch_app_total: u64,
pub launch_app_reached_foreground: u64,
pub launch_app_timed_out_before_foreground: u64,
pub reset_app_data_total: u64,
pub reset_app_data_timed_out: u64,
pub launch_app_reached_interactive: u64,
pub launch_app_timed_out_before_interactive: u64,
}Expand description
Cumulative session lifecycle counters.
Unlike the instantaneous sessions: Vec<SessionSummary> view,
these are advanced on every mutation and survive close. The split
terminate_app_via_xcuiapplication / terminate_app_via_fallback
counters answer “did clearAppData actually use the cooperative
pathway or fall back to SIGKILL”.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.opened_total: u64Total POST /session/open outcomes.
closed_total: u64Total POST /session/close outcomes (idempotent — includes closes
of unknown sessions).
relaunch_app_total: u64Total POST /session/relaunch-app outcomes.
terminate_app_total: u64Total POST /session/terminate-app outcomes.
terminate_app_via_xcuiapplication: u64Terminate calls that observed the target .notRunning before
the XCUIApplication timeout — cooperative pathway succeeded.
terminate_app_via_fallback: u64Terminate calls where XCUIApplication timed out and the runner
fell back to a hard-kill pathway. > 0 is the smoking gun for
a non-cooperative teardown.
launch_app_total: u64Total POST /session/launch-app outcomes.
launch_app_reached_foreground: u64Launch calls that observed .runningForeground inside the
requested wait_for_foreground_ms window.
launch_app_timed_out_before_foreground: u64Launch calls that timed out waiting for foreground.
reset_app_data_total: u64Total resetAppData verbs dispatched (URL-scheme JS-wipe
pattern, separate from clearAppData’s container-wipe pathway).
reset_app_data_timed_out: u64resetAppData calls where the completion
signal (log-line pattern match on the metro log tail) never
arrived inside the timeout window. > 0 = the URL fired but
the app didn’t emit the expected [dev] reset-complete line.
launch_app_reached_interactive: u64Launch calls that observed the
interactive fingerprint (≥ minIdentifierCount non-ignored
ax-ids in the a11y tree) inside wait_for_interactive_ms.
Distinct from launch_app_reached_foreground which only
tracks process state, not tree probeability.
launch_app_timed_out_before_interactive: u64Launch calls that timed out waiting for the interactive fingerprint. Non-zero = “process foreground but tree unusable” — typically a splash screen whose descendants are all unnamed.
Trait Implementations§
Source§impl Clone for SessionLifecycleCounters
impl Clone for SessionLifecycleCounters
Source§fn clone(&self) -> SessionLifecycleCounters
fn clone(&self) -> SessionLifecycleCounters
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more