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 abort signal.

Abort Signal Remediation Report

failures
abort_signal.ts
Replay: real traced execution (multi-file project)
const failures: number = 0;
const pauseLimit: number = 1;
const abortLimit: number = 3;

let action: string = "run";
if (failures > pauseLimit) {
    action = "pause";
}
if (failures > abortLimit) {
    action = "abort";
}

console.log(`failures=${failures} pause=${pauseLimit} abort=${abortLimit} ${action}`);
const failures: number = 2;
const pauseLimit: number = 1;
const abortLimit: number = 3;

let action: string = "run";
if (failures > pauseLimit) {
    action = "pause";
}
if (failures > abortLimit) {
    action = "abort";
}

console.log(`failures=${failures} pause=${pauseLimit} abort=${abortLimit} ${action}`);
const failures: number = 5;
const pauseLimit: number = 1;
const abortLimit: number = 3;

let action: string = "run";
if (failures > pauseLimit) {
    action = "pause";
}
if (failures > abortLimit) {
    action = "abort";
}

console.log(`failures=${failures} pause=${pauseLimit} abort=${abortLimit} ${action}`);
  1. failures ← 0, pauseLimit ← 1, abortLimit ← 3, action ← run

    1const failures→ 0: number = 0;  //@failures=2, 52const pauseLimit→ 1: number = 1;3const abortLimit→ 3: number = 3;45let action→ run: string = "run";6if (failures > pauseLimit) {7    action = "pause";8}9if (failures > abortLimit) {10    action = "abort";11}1213console.log(`failures=${failures0} pause=${pauseLimit1} abort=${abortLimit3} ${actionrun}`);
    outputfailures=0 pause=1 abort=3 run
  1. failures ← 2, pauseLimit ← 1, abortLimit ← 3, action ← run

    1const failures→ 2: number = 2;2const pauseLimit→ 1: number = 1;3const abortLimit→ 3: number = 3;45let action→ run: string = "run";6if (failures > pauseLimit) {
  2. if (failures > pauseLimit)

    5let action: string = "run";6if (failures2 > pauseLimit1) {7    action = "pause";8}
  3. console.log(`failures=${failures} pause=${pauseLimit} abort=${abortLim…

    10    action = "abort";11}1213console.log(`failures=${failures2} pause=${pauseLimit1} abort=${abortLimit3} ${actionpause}`);
    outputfailures=2 pause=1 abort=3 pause
  1. failures ← 5, pauseLimit ← 1, abortLimit ← 3, action ← run

    1const failures→ 5: number = 5;2const pauseLimit→ 1: number = 1;3const abortLimit→ 3: number = 3;45let action→ run: string = "run";6if (failures > pauseLimit) {
  2. if (failures > pauseLimit)

    5let action: string = "run";6if (failures5 > pauseLimit1) {7    action = "pause";8}
  3. if (failures > abortLimit)

    7    action = "pause";8}9if (failures5 > abortLimit3) {10    action = "abort";11}
  4. console.log(`failures=${failures} pause=${pauseLimit} abort=${abortLim…

    10    action = "abort";11}1213console.log(`failures=${failures5} pause=${pauseLimit1} abort=${abortLimit3} ${actionabort}`);
    outputfailures=5 pause=1 abort=3 abort