pub struct StopReport {
pub pid: u32,
pub endpoint_closed: bool,
pub process_gone: bool,
pub frontmost_before: Option<String>,
pub frontmost_after: Option<String>,
pub frontmost_unchanged: bool,
pub frontmost_states: Vec<String>,
pub owned_never_frontmost: bool,
pub owned_frontmost_pids: Vec<u32>,
pub frontmost_pid_unavailable_samples: usize,
pub owned_never_frontmost_failure: Option<String>,
}Fields§
§pid: u32§endpoint_closed: bool§process_gone: bool§frontmost_before: Option<String>§frontmost_after: Option<String>§frontmost_unchanged: bool§frontmost_states: Vec<String>Every distinct foreground state sampled during the session (empty when unmeasurable).
owned_never_frontmost: boolEvery sampled foreground PID belonged to no app process started by this control session.
This is the background invariant; frontmost_unchanged remains diagnostic only.
macOS checks the started pid and every process under the bundle executable; Windows
checks the started pid only (the owner of the foreground window, from
GetForegroundWindow + GetWindowThreadProcessId, sampled every 20 ms). Both fail
closed when a foreground owner exists but cannot be read. Other targets always report
false for a non-visible launch.
owned_frontmost_pids: Vec<u32>Owned fixture PIDs observed in foreground, if any.
Foreground samples whose owner pid could not be read (macOS: the frontmost application;
Windows: the foreground window’s owner). Any such sample makes owned_never_frontmost
false: an unread owner proves nothing.
owned_never_frontmost_failure: Option<String>Why owned_never_frontmost is false, in words that tell “an owned app WAS frontmost”
from “the frontmost pid could not be read” and from “the owned executable was never
registered”. None when the guard holds or was not enforced.
Implementations§
Source§impl StopReport
impl StopReport
Sourcepub fn permission_dialog(&self) -> Option<String>
pub fn permission_dialog(&self) -> Option<String>
The first sampled foreground name that belongs to a system permission-dialog agent.
Positive evidence only: None does not prove no dialog appeared.