Skip to content

feat(stovepipe): Apply planned issue changes - #932

Closed
prathshenoy wants to merge 1 commit into
codex/stovepipe-issuetrack-changefrom
codex/stovepipe-issuetrack-reconcile
Closed

prathshenoy wants to merge 1 commit into
codex/stovepipe-issuetrack-changefrom
codex/stovepipe-issuetrack-reconcile

Conversation

@prathshenoy

@prathshenoy prathshenoy commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Summary

What:

  • Apply a planned issue change and record its history before marking it complete.
  • Resume partially completed changes without overwriting newer issue state.

Why:

  • Finish partially completed issue changes without repeating them or losing their history. The issue update, history entry, and saved progress are separate writes, so a failure can happen between any of them. A retry checks what already succeeded, writes the missing history when appropriate, and clears the planned change only after both are complete.
  • Stop an old worker from changing an issue after another worker has advanced it. Retrying with the original expected version, rather than adopting the latest version, prevents an outdated opening or closing from overwriting newer state. Keep this behavior separate from scanning and message handling so the write-and-retry rules can be tested on their own.

Test Plan

  • Add unit tests.

Revert Plan

  • Revert dependent controllers first, then this PR. No runtime consumer is enabled; the state and planned-change storage remain available but unused by issue tracking.

Issue Links

Stack

  1. feat(stovepipe): Retain versioned issue state #942
  2. feat(stovepipe): Save planned issue changes #943
  3. feat(stovepipe): Apply planned issue changes #932
  4. feat(stovepipe): Track issues in bounded passes #940
  5. feat(stovepipe): Publish issue-tracking updates #939

@prathshenoy
prathshenoy added this pull request to stack #933 October 23, 2026 21:02
@prathshenoy
prathshenoy force-pushed the codex/stovepipe-issuetrack-reconcile branch 2 times, most recently from 59bf469 to bd15576 Compare October 23, 2026 21:51
@prathshenoy
prathshenoy force-pushed the codex/stovepipe-issuetrack-reconcile branch 4 times, most recently from 64e82f4 to eeddbdd Compare October 26, 2026 01:03
@prathshenoy prathshenoy changed the title feat(stovepipe): Add issue-tracking controller feat(stovepipe): Reconcile issues in batches Oct 26, 2026
@prathshenoy
prathshenoy force-pushed the codex/stovepipe-issuetrack-reconcile branch from eeddbdd to c76be01 Compare October 26, 2026 02:26
Base automatically changed from codex/stovepipe-issuetrack-controller to main October 26, 2026 18:01
@prathshenoy
prathshenoy force-pushed the codex/stovepipe-issuetrack-reconcile branch 2 times, most recently from 7e6af1e to 9721cf1 Compare October 27, 2026 01:20
@prathshenoy
prathshenoy removed this pull request from stack #933 October 27, 2026 01:26
@prathshenoy prathshenoy changed the title feat(stovepipe): Reconcile issues in batches feat(stovepipe): Apply saved issue changes Oct 27, 2026
@prathshenoy
prathshenoy changed the base branch from main to codex/stovepipe-issuetrack-change October 27, 2026 01:26
@prathshenoy
prathshenoy added this pull request to stack #944 October 27, 2026 01:26
@prathshenoy
prathshenoy force-pushed the codex/stovepipe-issuetrack-reconcile branch from 9721cf1 to a14c3cd Compare October 27, 2026 03:02
@prathshenoy
prathshenoy force-pushed the codex/stovepipe-issuetrack-reconcile branch from a14c3cd to 93104e6 Compare October 27, 2026 03:10
@prathshenoy
prathshenoy force-pushed the codex/stovepipe-issuetrack-reconcile branch from 93104e6 to 802fea3 Compare October 27, 2026 03:24
@prathshenoy
prathshenoy force-pushed the codex/stovepipe-issuetrack-reconcile branch from 802fea3 to 09f2749 Compare October 27, 2026 03:38
@prathshenoy prathshenoy changed the title feat(stovepipe): Apply saved issue changes feat(stovepipe): Apply planned issue changes Oct 27, 2026
DivyanshGarg380 pushed a commit to DivyanshGarg380/submitqueue that referenced this pull request Oct 27, 2026
## Summary

**What**:

- Persist queue-scoped source ordering, reconciliation ownership, and
exclusive issue cursors with guarded progress updates.
- Keep storage point-keyed and leave runtime writers disabled.

**Why**:

- Resume interrupted batches without restarting their scans or losing
the boundary after the last open issue disappears.
- Distinguish the notification that owns a pass from another
notification helping finish it.

## Test Plan

- [x] Add unit tests.
- [x] Verify checkpoint persistence, queue isolation, identifier
boundaries, and competing guarded updates against MySQL.

## Revert Plan

- Revert dependents first, then this PR. No runtime writer is enabled;
the additive progress table can remain unused.

## Issue Links

- [CODEM-607](https://linear.app/uber/issue/CODEM-607/build-analysis)

## Stack

1. uber#930
1. uber#932
1. uber#940
1. uber#939
@prathshenoy
prathshenoy removed this pull request from stack #944 October 27, 2026 15:45
@prathshenoy
prathshenoy added this pull request to stack #981 October 29, 2026 01:41
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