runForegroundOperation

suspend fun <T> runForegroundOperation(label: String, completionLabel: String? = null, contentIntent: PendingIntent? = null, block: suspend () -> T): T

Run block as a tracked foreground operation (#261-264) and return its result.

The SDK keeps the process alive under a foreground service for the operation's duration, holds the session-lock off (so an auto-lock can't tear the SDK out mid-flight), shows an ongoing progress notification, and fires a dismissible finalization notification when it completes. label is YOUR string (shown in the notification) — the SDK emits no text of its own. This is the SAME machinery the SDK's own sendNight / registerForDustGeneration / contract calls use, so any dApp's long-running work gets identical treatment.

For "submit then leave the app", use launchForegroundOperation (fire-and-forget on the SDK's own scope) so the work survives the caller's coroutine being cancelled.