Skip to content

fix(enrichment): restart cancelled repairs and execute durable retries - #569

Merged
stef-k merged 4 commits into
mainfrom
fix/cancelled-enrichment-repair
Sep 5, 2026
Merged

fix(enrichment): restart cancelled repairs and execute durable retries#569
stef-k merged 4 commits into
mainfrom
fix/cancelled-enrichment-repair

Conversation

@stef-k

@stef-k stef-k commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Cancelled enrichment previously offered no retry/repair path despite eligible work. Enable the distinct explicit Retry and Repair commands from Cancelled, align prepared-repair progress with worker eligibility, and execute transient repairs through durable due-time Quartz continuations. Preserve cancellation fencing and replacement-operation ownership, and show outcome-supported locality-free feedback without automatic repeated contacts.

Includes import documentation and Unreleased notes. Closes #566. No database migrations or configuration changes. Preserves #565 behavior.

Validation:

  • Independent review of d8d4073: READY FOR PR, no current-branch product blocker. The subsequent 871640e commit only corrects one contradictory documentation sentence; diff and guard checks passed.
  • Reviewer freshly built and passed 289 focused tests, zero failures/skips, including relational commands, due-time continuation, cancellation/replacement ownership, rendering, manual-edit preservation, and authenticated SSE.
  • Retained behavioral red logs inspected; overlapping test runs are not additive.
  • Code Guard covered all 23 files with no FAIL/INCOMPLETE. Accepted size REVIEWs: unchanged 500-LOC atomicity allowance; linear continuation/orphan and existing Quartz lifecycle tests; historical changelog.
  • No browser observation or screenshot was captured; presentation is covered by rendering tests.

Explicit validation debt: #568 tracks the pre-existing shared-domain isolation and stopped-scheduler cleanup defects in RetryProjectionFailureReconcilesOnceAndDoesNotReplayAfterRestart. This test was explicitly excluded from the 289-test selection after encountering 207 unrelated workflows. Isolated Quartz tables do not isolate domain reconciliation; filtering only assertions is insufficient. The persistent restart/no-replay proof and full-suite success remain unestablished. No unrelated database rows were removed.

The accelerated continuation proof exercises the actual Quartz/job/worker after moving stored deadlines; it does not prove five minutes of unattended waiting or persistent-store restart. Original production inactivity remains unconfirmed. Local reproductions establish progress omission and continuation defects, not reconstruction of the production session.

Merge gate: successful GitHub Actions test on the exact current PR head. Retain #568 debt in merge notes.

@stef-k
stef-k merged commit f9c5e70 into main Sep 5, 2026
1 check passed
@stef-k
stef-k deleted the fix/cancelled-enrichment-repair branch September 5, 2026 08:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cancelled enrichment blocks retry and repair despite eligible work

1 participant