Skip to content

feat(stovepipe): extend fixer DLQ recovery to every issue and backend - #1035

Open
mnoah1 wants to merge 1 commit into
mnoah1/stovepipe-batch-repairsfrom
mnoah1/stovepipe-repair-dlq
Open

mnoah1 wants to merge 1 commit into
mnoah1/stovepipe-batch-repairsfrom
mnoah1/stovepipe-repair-dlq

Conversation

@mnoah1

@mnoah1 mnoah1 commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Why?

With multiple issues and fixer backends, a dead-lettered fix request can contain several accepted or skipped submissions alongside work whose acceptance is unknown. The existing DLQ handler reads one build-level repair association and cannot restore all of those histories.

What?

Extend the fix DLQ handler to walk the build's observations and registered executors, read their IssueRepair records, and restore history for every durable acceptance or skip. Pending records, and eligible issues without a record, retain fix_submission_abandoned with reason acceptance_unknown. Recovery never calls Submit or changes issue recovery state.

Pass the executor registry through the DLQ wiring, update recovery tests, and remove the superseded single-fix selection and history helpers. This completes DLQ support for the fixer behavior introduced by #1033.

Test Plan

TestFixDLQRetainsAllDispositionsWithoutSubmitting, TestFixDLQRetainsUnknownAcceptance, and TestFixDLQDiscardsInvalidMessages cover retained outcomes, unknown acceptance, invalid deliveries, and the absence of executor submissions. The 28-target Stovepipe suite also verifies reference-server wiring. Lint, tidy, and Gazelle checks verify the repository metadata.

Revert Plan

Revert this PR, then revert #1033 and #1034 before deploying the earlier build-level repair flow.

Issue Links

No issue was provided. Final part of the repair-executor stack; based on #1033.

Stack

  1. feat(stovepipe): store fixer submissions per issue and backend #1032
  2. feat(stovepipe): extend fixer API for batching and multiple backends #1034
  3. feat(stovepipe): offer newly opened issues to every registered fixer #1033
  4. @ feat(stovepipe): extend fixer DLQ recovery to every issue and backend #1035

Summary:
Recover every executor's durable submission or skip without submitting backend work. Pending or missing eligible repair records retain an acceptance-unknown event. Wire the executor registry into recovery and remove the superseded build-level selection and history helpers.

This is the final layer of the repair-executor stack, building on normal batch dispatch.

Test Plan:
`TestFixDLQRetainsAllDispositionsWithoutSubmitting`, `TestFixDLQRetainsUnknownAcceptance`, and `TestFixDLQDiscardsInvalidMessages` cover retained outcomes, unknown acceptance, invalid deliveries, and the absence of executor submissions. The 28-target Stovepipe suite also verifies reference-server wiring. Lint, tidy, and Gazelle checks verify the repository metadata.

Revert Plan:
Revert this PR together with the dependent dispatch and executor-contract changes before deploying the earlier build-level repair flow.
@mnoah1
mnoah1 added this pull request to stack #1038 November 6, 2026 22:26
@mnoah1 mnoah1 changed the title feat(stovepipe): recover per-executor repair history in the DLQ feat(stovepipe): extend fixer DLQ recovery to every issue and backend Nov 6, 2026
@mnoah1
mnoah1 marked this pull request as ready for review November 6, 2026 22:32
@mnoah1
mnoah1 requested review from a team, behinddwalls and sbalabanov as code owners November 6, 2026 22:32

This branch has not been deployed

No deployments
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.

1 participant