What
The SDK engine keeps a queue of turns waiting to run. Each waiting turn now has a status: queued (still waiting) or armed (next up and being set up).
- If building a turn's settings fails, the turn now also sends a
cancelledlifecycle report. - When the engine closes, a new sweep marks an armed turn
cancelledand any queued turnsdiscarded. It runs even if the engine never started processing. If the sweep fails, it logs "[engine] abandonment sweep failed". - The
still_queuedlist returned byinterrupt()now lists only turns still waiting, not the one already armed.
Why
A program using the SDK now gets a clear final status for every turn it asked for, instead of turns disappearing without a report when setup fails or the engine shuts down.