Straza / mobile approver

Transcript & sources
Lock screen: a push arrives. Straza, Approval requested. Tap to review.
   [V] push is content-free: only {v,ref,kind}; the app fetches before rendering. APP-CONTRACT, Principles
Tap: the app fetches the request over the pinned channel before showing actions.
   [V] fetch before showing actions. APP-CONTRACT, Error contract
Approval card:
  Requested action   mcp.call midpoint:disable_user   [V] shape summary {tool,app,tool_name}; the values are [I]. APP-CONTRACT, Authenticated surface
  Requester          nova · agent                     [V] shape requester {username, kind:nhi}; "nova" is [I]. same row
  Approver role      sec-approvers                     [I] approve.roles, illustrative.
  Agent's stated reason (model-generated · unverified) [V] justification is labeled unverified.
    Offboarding contractor c-8842 per ticket OPS-5521; access end-dated today.  [I] illustrative
  Expires in 2:00. A timeout is a deny.                [V] bounded wait, timeout = deny; the 2:00 value is [I].
  [ Deny ]   [ Approve ]
Approve: signed in the Secure Enclave with the device key; the key never leaves the phone.
   [V] ECDSA-P256/SHA-256, hardware signing, non-exportable key. APP-CONTRACT, decide + Enrollment
Approved. The held call completed.                     [V] decide returns state:approved; the held gateway call releases.