Skip to content

feat(stovepipe): extend fixer API for batching and multiple backends - #1034

Open
mnoah1 wants to merge 1 commit into
mnoah1/stovepipe-repair-statefrom
mnoah1/stovepipe-fixer-contract
Open

mnoah1 wants to merge 1 commit into
mnoah1/stovepipe-repair-statefrom
mnoah1/stovepipe-fixer-contract

Conversation

@mnoah1

@mnoah1 mnoah1 commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Why?

The fixer extension currently resolves one executor per queue and submits one open issue at a time. Supporting multiple backends for the same issue, while letting each backend choose how to group its work, requires extending both registration and submission.

What?

Extend Factory.For to return stable, named executor registrations and RepairExecutor.Submit to accept a list of issue openings. Each returned Submission associates an input issue with an accepted FixID or a terminal SkipReason. Multiple issues can share a fix ID; omitted issues remain pending. These receipts describe submission acceptance, not repair completion.

Update the generated mock and no-op adapter to match. Executors manage metadata through the storage introduced in #1032. Controller and reference-server callers migrate to this contract in #1033.

Test Plan

./tool/bazel build //stovepipe/extension/fixer/... builds the contract, generated mock, and no-op implementation. make mocks regenerated the mock, and lint, tidy, and Gazelle checks verify the generated sources and build metadata. Caller compilation requires the next PR.

Revert Plan

Revert the dependent dispatch change before reverting this contract change.

Issue Links

No issue was provided. Part 2 of the repair-executor stack; based on #1032. Caller migration follows in #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:
Let queues register multiple repair backends and let each backend group its own issue openings. Submission receipts identify accepted work or a terminal skip for each input item; metadata stays in versioned storage.

This contract change builds on repair-state persistence. Controller and reference-server callers migrate in the next PR in the stack.

Test Plan:
`./tool/bazel build //stovepipe/extension/fixer/...` builds the contract, generated mock, and no-op implementation. `make mocks` regenerated the mock, and lint, tidy, and Gazelle checks verify the generated sources and build metadata. Caller compilation requires the next PR.

Revert Plan:
Revert the dependent dispatch change before reverting this contract change.
@mnoah1
mnoah1 added this pull request to stack #1038 November 6, 2026 22:26
@mnoah1 mnoah1 changed the title feat(stovepipe): define named batch repair executor contracts feat(stovepipe): extend fixer API for batching and multiple backends Nov 6, 2026
@mnoah1
mnoah1 marked this pull request as ready for review November 6, 2026 22:31
@mnoah1
mnoah1 requested review from a team, behinddwalls and sbalabanov as code owners November 6, 2026 22:31

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