Compare a recorded failure count against pause and abort limits and turn it into a run, pause, or abort remediation action.

failure thresholds The failure count and fixed pause/abort limits are scalars, so the remediation action stays deterministic without watching a live cancellation flag.

Cancellation Flag Remediation Report

failures
cancellation_flag.lua
Replay: real traced execution (multi-file project)
local failures = 0
local pause_limit = 1
local abort_limit = 3

local action = "run"
if failures > abort_limit then
  action = "abort"
elseif failures > pause_limit then
  action = "pause"
end

print("failures=" .. failures .. " pause=" .. pause_limit .. " abort=" .. abort_limit .. " " .. action)
local failures = 2
local pause_limit = 1
local abort_limit = 3

local action = "run"
if failures > abort_limit then
  action = "abort"
elseif failures > pause_limit then
  action = "pause"
end

print("failures=" .. failures .. " pause=" .. pause_limit .. " abort=" .. abort_limit .. " " .. action)
local failures = 5
local pause_limit = 1
local abort_limit = 3

local action = "run"
if failures > abort_limit then
  action = "abort"
elseif failures > pause_limit then
  action = "pause"
end

print("failures=" .. failures .. " pause=" .. pause_limit .. " abort=" .. abort_limit .. " " .. action)
  1. failures ← 0, pause_limit ← 1, abort_limit ← 3, action ← run

    1local failures→ 0 = 0 --@failures=2, 52local pause_limit→ 1 = 13local abort_limit→ 3 = 345local action→ run = "run"6if failures > abort_limit then7  action = "abort"8elseif failures > pause_limit then9  action = "pause"10end1112print("failures=" .. failures0 .. " pause=" .. pause_limit1 .. " abort=" .. abort_limit3 .. " " .. actionrun)
    outputfailures=0 pause=1 abort=3 run
  1. failures ← 2, pause_limit ← 1, abort_limit ← 3, action ← run

    1local failures→ 2 = 22local pause_limit→ 1 = 13local abort_limit→ 3 = 345local action→ run = "run"6if failures > abort_limit then
  2. action ← pause

    7  action = "abort"8elseif failures2 > pause_limit1 then9  action→ pause = "pause"10end
  3. print("failures=" .. failures .. " pause=" .. pause_limit .. " abort="…

    12print("failures=" .. failures2 .. " pause=" .. pause_limit1 .. " abort=" .. abort_limit3 .. " " .. actionpause)
    outputfailures=2 pause=1 abort=3 pause
  1. failures ← 5, pause_limit ← 1, abort_limit ← 3, action ← run

    1local failures→ 5 = 52local pause_limit→ 1 = 13local abort_limit→ 3 = 345local action→ run = "run"6if failures > abort_limit then
  2. action ← abort

    5local action = "run"6if failures5 > abort_limit3 then7  action→ abort = "abort"8elseif failures > pause_limit then
  3. print("failures=" .. failures .. " pause=" .. pause_limit .. " abort="…

    12print("failures=" .. failures5 .. " pause=" .. pause_limit1 .. " abort=" .. abort_limit3 .. " " .. actionabort)
    outputfailures=5 pause=1 abort=3 abort