abandonFlow method

void abandonFlow(
  1. int flowId
)

Mark flowId abandoned: the screen that ran it is gone (S13 §1a H1).

The Back hold stops Back and maybePop only. A host pop/go/ replace or a session teardown still disposes the screen, and during the host's authorizer prompt this controller's spend closure can still run afterwards — money moving under a screen that already told its host "no transaction". An abandoned flow's closure refuses BEFORE it enters, so that answer is structurally true. A flow that already entered is unaffected: its payment is under way and keeps going.

Implementation

void abandonFlow(int flowId) {
  if (_enteredFlows.contains(flowId)) return;
  _abandonedFlows.add(flowId);
}