DaemonExitOutcome

public struct DaemonExitOutcome

What one exitDaemon() call did, carried back to whoever asked for it.

A bare false was ambiguous: it meant both “waited the full budget and the daemon never confirmed” and “could not even build the command, so nothing was sent and we returned immediately”. Those are different bugs and reached Sentry as the same message.

Returned rather than stored on the shared instance on purpose: exitDaemon() is called from tunnelWillStop (NE stop thread) and from clearSettings (app message thread), so a property would be written from two threads and could describe the wrong call.

  • True only when the daemon reported EXITED/CRASHED/NOTRUNNING in time.

    Declaration

    Swift

    public let confirmed: Bool
  • Small fixed vocabulary, safe to put in a Sentry title: Sentry groups message events by their text, so this must not contain varying data.

    Declaration

    Swift

    public let outcome: String
  • How long the call took. Varying, so it must NOT be a Sentry tag value either — see durationBucket.

    Declaration

    Swift

    public let elapsedMs: Int
  • Coarse bucket for tagging. A millisecond figure as a tag value grows the tag index without bound; the exact number belongs in the breadcrumb.

    Declaration

    Swift

    public var durationBucket: String { get }