gsxdsm
1a3230ff93
FN-9186: Bound no-progress self-healing requeues
Bound no-progress self-healing retries so persistent failures stop consuming agent sessions.
- Persist a three-attempt retry budget with exponential backoff and an idempotent terminal sentinel.
- Prevent restart and wedge recovery paths from reopening exhausted failures.
- Emit bounded retry and exhaustion audit events with regression coverage and operator documentation.
Files changed:
.changeset/fn-9186-no-progress-requeue-budget.md | 7 ++
AGENTS.md | 1 +
docs/architecture.md | 2 +
docs/run-audit.md | 2 +
docs/self-healing-backward-move-audit.md | 2 +-
.../src/__tests__/default-workflow-hooks.test.ts | 18 +++
.../non-executor-run-audit-sink-health.test.ts | 43 +++++++
.../__tests__/restart-recovery-coordinator.test.ts | 14 +++
...self-healing-no-progress-requeue-budget.test.ts | 131 +++++++++++++++++++++
packages/engine/src/__tests__/self-healing.test.ts | 59 ++++++----
.../src/healing/no-progress-requeue-budget.ts | 7 ++
.../src/healing/restart-recovery-coordinator.ts | 10 +-
.../__tests__/task-wedge-notification.test.ts | 10 +-
.../src/notification/task-wedge-notification.ts | 9 ++
packages/engine/src/self-healing.ts | 95 +++++++++++++--
packages/engine/src/util/run-audit.ts | 3 +
16 files changed, 378 insertions(+), 35 deletions(-)
Fusion-Task-Id: FN-9186
Fusion-Task-Lineage: 06d29a60-b6ad-4506-a3c1-f3c52411946a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-08-21 09:21:52 -07:00
..
2026-08-19 10:10:39 -07:00
2026-08-21 09:21:52 -07:00
2026-08-21 04:32:53 +00:00
2026-08-20 03:57:23 +00:00
2026-08-21 04:32:52 +00:00
2026-08-13 17:22:46 -07:00
2026-08-18 21:09:03 -07:00
2026-08-11 20:25:59 -07:00
2026-08-21 14:41:37 +00:00
2026-08-21 04:32:52 +00:00
2026-08-12 07:43:29 -07:00
2026-08-08 18:56:43 -07:00
2026-08-21 04:36:21 +00:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-08 19:58:43 -07:00
2026-08-03 00:20:53 -07:00
2026-08-20 03:57:23 +00:00
2026-08-03 00:20:53 -07:00
2026-08-09 13:33:16 -10:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-19 22:44:46 -07:00
2026-08-13 15:30:53 -07:00
2026-08-20 03:36:07 -07:00
2026-08-09 15:16:12 -07:00
2026-08-15 15:22:33 -07:00
2026-08-19 21:42:29 -07:00
2026-08-03 00:20:53 -07:00
2026-08-19 23:29:37 -07:00
2026-08-19 19:46:35 -07:00
2026-08-21 04:35:58 +00:00
2026-08-03 00:20:53 -07:00
2026-08-11 05:45:36 -07:00
2026-08-20 00:36:50 -07:00
2026-08-03 00:20:53 -07:00
2026-08-12 07:43:29 -07:00
2026-08-12 16:03:30 -07:00
2026-08-21 08:25:18 -07:00
2026-08-21 04:35:58 +00:00
2026-08-21 14:41:37 +00:00
2026-08-21 04:32:53 +00:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-15 03:22:13 -07:00
2026-08-03 00:20:53 -07:00
2026-08-21 14:41:37 +00:00
2026-08-21 14:41:37 +00:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-07-31 21:56:30 -07:00
2026-07-31 21:56:30 -07:00
2026-08-05 16:46:53 -07:00
2026-08-21 07:48:23 -07:00
2026-08-21 04:32:53 +00:00
2026-08-21 04:32:53 +00:00
2026-07-22 08:30:12 -07:00
2026-08-03 00:20:53 -07:00
2026-08-15 17:36:32 -07:00
2026-08-03 00:20:53 -07:00
2026-08-21 04:35:58 +00:00
2026-08-03 00:20:53 -07:00
2026-08-19 18:16:49 -07:00