Skip to content

feat(stovepipe): persist repairs with queue-scoped discovery - #896

Draft
mnoah1 wants to merge 1 commit into
mnoah1/stovepipe-breakage-fix-apifrom
mnoah1/stovepipe-fix-storage
Draft

mnoah1 wants to merge 1 commit into
mnoah1/stovepipe-breakage-fix-apifrom
mnoah1/stovepipe-fix-storage

Conversation

@mnoah1

@mnoah1 mnoah1 commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Why?

Persist repairs so several failure episodes can share one fix and controllers can discover active work using the existing key-value storage model.

Stacked on #893, which defines the repair contracts, and #894, which describes the workflow.

What?

  • Implement queue-scoped MySQL FixStore with primary-key reads and optimistic, full-snapshot updates.
  • Persist Queue.ActiveFixIDs through the existing QueueStore and Queue.Version; preserve membership across other queue updates.
  • Keep failure/recovery evidence and the authoritative FixID assignment in build-analysis episode records. Retain BreakageRef membership on each repair.
  • Store repairs in one new fix table with episode references, lifecycle, execution ID, and optional provider metadata.
  • Cover submission and retry snapshots, including rejection of stale results, in MySQL integration tests.

Existing databases need queue.active_fix_ids added and backfilled with an empty JSON array before deploying the new queue-store code. The schemas initialize fresh databases.

Test Plan

  • Passed all 21 Stovepipe unit-test targets and the real-MySQL storage integration suite, including concurrent active-membership updates and preservation during queue enablement changes.
  • Built affected service, fixer, and mock targets.
  • Passed repository lint, dependency, Gazelle, mock-generation, and documentation checks. Strict documentation builds and Mermaid parsing passed after restacking.

Revert Plan

Revert this commit and deploy the previous service version before removing the added schema fields/table. Existing validation data is preserved.

Issue Links

None — this persistence layer implements the repair design being prepared for team review.

@mnoah1
mnoah1 added this pull request to stack #897 October 20, 2026 20:06
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-fix-storage branch from a32ddaf to f82d947 Compare October 20, 2026 21:06

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