gsxdsm
60b6e3e048
FN-7996: add configurable executor tool-failure retries
Add bounded, durable same-model retry handling for qualifying consecutive executor tool errors.
- Persist retry claims, cursors, and audit markers with PostgreSQL migrations.
- Expose project retry count, backoff, and failure threshold settings in the dashboard.
- Cover retry, exhaustion, reset, and stale-run safety behavior with tests.
Files changed:
.changeset/fn-7996-executor-tool-failure-retry.md | 7 +
AGENTS.md | 1 +
docs/architecture.md | 1 +
docs/settings-reference.md | 10 ++
.../executor-tool-failure-retry-claim.test.ts | 17 +++
.../core/src/__tests__/manual-retry-reset.test.ts | 3 +
.../core/src/__tests__/settings-defaults.test.ts | 15 +-
packages/core/src/in-review-stall.ts | 20 +++
packages/core/src/index.gate.ts | 6 +
packages/core/src/index.ts | 6 +
packages/core/src/manual-retry-reset.ts | 3 +
.../0013_executor_tool_failure_retry.sql | 4 +
packages/core/src/postgres/schema-applier.ts | 17 +++
packages/core/src/postgres/schema/project.ts | 3 +
packages/core/src/settings-schema.ts | 3 +
packages/core/src/store.ts | 10 +-
packages/core/src/task-store/persistence.ts | 7 +
packages/core/src/task-store/remaining-ops-2.ts | 2 +-
packages/core/src/task-store/remaining-ops-3.ts | 2 +-
packages/core/src/task-store/remaining-ops-6.ts | 65 ++++++++-
packages/core/src/task-store/serialization.ts | 3 +
packages/core/src/task-store/task-update.ts | 6 +
packages/core/src/types.ts | 16 +++
.../dashboard/app/components/SettingsModal.tsx | 15 ++
.../app/components/settings/section-keys.ts | 3 +
.../settings/sections/SchedulingSection.search.ts | 27 ++++
.../settings/sections/SchedulingSection.tsx | 4 +
.../settings-default-descriptions.test.tsx | 3 +
.../__tests__/executor-tool-failure-retry.test.ts | 160 +++++++++++++++++++++
packages/engine/src/executor.ts | 87 ++++++++++-
packages/i18n/locales/en/app.json | 6 +
31 files changed, 523 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7996
Fusion-Task-Lineage: d1682ef8-534c-410e-b74c-1f2cf176eac2
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-16 13:41:14 -07:00
..
2026-07-16 09:24:56 -07:00
2026-07-13 10:32:12 -07:00
2026-07-16 13:41:14 -07:00
2026-07-16 13:41:14 -07:00
2026-07-15 14:41:05 -07:00
2026-07-13 10:32:12 -07:00
2026-07-16 13:41:14 -07:00
2026-07-16 13:41:14 -07:00
2026-07-13 10:32:12 -07:00
2026-07-13 10:32:12 -07:00
2026-06-08 15:19:27 -07:00
2026-07-15 08:44:11 -07:00