Skip to content

feat(stovepipe): Recover project analysis failures - #1062

Open
prathshenoy wants to merge 1 commit into
prath.shenoy/refactor/stovepipe-project-resultsfrom
prath.shenoy/feat/stovepipe-project-analysis-dlq
Open

prathshenoy wants to merge 1 commit into
prath.shenoy/refactor/stovepipe-project-resultsfrom
prath.shenoy/feat/stovepipe-project-analysis-dlq

Conversation

@prathshenoy

@prathshenoy prathshenoy commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

What:

  • Add dead-letter recovery that records unfinished project analysis and hands the request to repository recording.
  • Preserve partial results and skip provider calls on subsequent deliveries after abandonment.

Why:

  • Keep exhausted analysis failures from stranding repository recording or repeating the same provider failure indefinitely. Results already written remain valid, but incomplete attribution must not be reported as a completed empty result.

Test Plan

  • Add unit tests.

Revert Plan

  • Revert this PR. The recovery controller is not registered and no schema changes are required.

Issue Links

Stack

  1. refactor(stovepipe): Extract fact persistence #1057
  2. feat(stovepipe): Define project analysis stage #1066
  3. feat(stovepipe): Implement project processing #1058
  4. feat(stovepipe): Recover project analysis failures #1062
  5. feat(stovepipe): Wire the project analysis stage #1065

@prathshenoy
prathshenoy added this pull request to stack #1059 November 9, 2026 21:25
@prathshenoy
prathshenoy force-pushed the prath.shenoy/feat/stovepipe-project-analysis-dlq branch 2 times, most recently from 54a839f to fe2dab4 Compare November 10, 2026 16:27
Base automatically changed from prath.shenoy/feat/stovepipe-project-analysis to main November 10, 2026 16:27
@prathshenoy
prathshenoy removed this pull request from stack #1059 November 10, 2026 16:28
@prathshenoy
prathshenoy changed the base branch from main to prath.shenoy/refactor/stovepipe-project-results November 10, 2026 16:43
@prathshenoy
prathshenoy added this pull request to stack #1067 November 10, 2026 16:44
@prathshenoy
prathshenoy force-pushed the prath.shenoy/feat/stovepipe-project-analysis-dlq branch from fe2dab4 to fa73b86 Compare November 10, 2026 16:57
@prathshenoy
prathshenoy force-pushed the prath.shenoy/feat/stovepipe-project-analysis-dlq branch 2 times, most recently from 523a469 to de1a940 Compare November 10, 2026 17:08
@prathshenoy
prathshenoy force-pushed the prath.shenoy/feat/stovepipe-project-analysis-dlq branch 2 times, most recently from 2af200b to f05b629 Compare November 10, 2026 17:55
@prathshenoy
prathshenoy force-pushed the prath.shenoy/feat/stovepipe-project-analysis-dlq branch 2 times, most recently from 4f8666e to bb4f01a Compare November 10, 2026 21:17
@prathshenoy
prathshenoy force-pushed the prath.shenoy/feat/stovepipe-project-analysis-dlq branch from bb4f01a to 6cca7cf Compare November 10, 2026 21:21
@prathshenoy
prathshenoy force-pushed the prath.shenoy/feat/stovepipe-project-analysis-dlq branch from 6cca7cf to 5a4666b Compare November 10, 2026 21:31
@prathshenoy
prathshenoy force-pushed the prath.shenoy/feat/stovepipe-project-analysis-dlq branch 2 times, most recently from 2374a6f to 5f851a0 Compare November 10, 2026 21:45
@prathshenoy
prathshenoy force-pushed the prath.shenoy/feat/stovepipe-project-analysis-dlq branch from 5f851a0 to ac0814a Compare November 10, 2026 21:52
@prathshenoy
prathshenoy force-pushed the prath.shenoy/feat/stovepipe-project-analysis-dlq branch from ac0814a to e023c4e Compare November 10, 2026 22:15
**What**:
- Add dead-letter recovery that records unfinished project analysis and hands the request to repository recording.
- Preserve partial results and skip provider calls on subsequent deliveries after abandonment.

**Why**:
- Keep exhausted analysis failures from stranding repository recording or repeating the same provider failure indefinitely. Results already written remain valid, but incomplete attribution must not be reported as a completed empty result.

- [x] Add unit tests.

- Revert this PR. The recovery controller is not registered and no schema changes are required.

- [CODEM-632](https://linear.app/uber/issue/CODEM-632/projects-issues)
@prathshenoy
prathshenoy force-pushed the prath.shenoy/feat/stovepipe-project-analysis-dlq branch from e023c4e to d6d6ae3 Compare November 10, 2026 22:22
@prathshenoy
prathshenoy marked this pull request as ready for review November 10, 2026 22:24
@prathshenoy
prathshenoy removed this pull request from stack #1067 November 10, 2026 23:23
prathshenoy added a commit that referenced this pull request Nov 10, 2026
## Summary
**What**:
- Run project analysis after terminal build analysis and before repository recording.
- Mark project analysis finished after project statuses and issue attribution are recorded, or processing is abandoned.

**Why**:
- Ensure attribution uses final build issues and repository recording receives the project results needed to distinguish partial failures from repository-wide failures.
- Keep request summaries from reporting completion while project analysis is still running, and repair incomplete summary updates before handing off to repository recording.

## Test Plan
- [x] Add unit tests.

## Revert Plan
- Revert this PR after pausing intake and draining or reconciling pending project-analysis work, because the revert removes its consumers.

## Issue Links
- [CODEM-632](https://linear.app/uber/issue/CODEM-632/projects-issues)

## Stack
1. #1057
1. #1066
1. #1058
1. #1062
1. #1065
@prathshenoy
prathshenoy added this pull request to stack #1071 November 10, 2026 23:24
prathshenoy added a commit that referenced this pull request Nov 10, 2026
## Summary
**What**:
- Run project analysis after terminal build analysis and before repository recording.
- Mark project analysis finished after project statuses and issue attribution are recorded, or processing is abandoned.

**Why**:
- Ensure attribution uses final build issues and repository recording receives the project results needed to distinguish partial failures from repository-wide failures.
- Keep request summaries from reporting completion while project analysis is still running, and repair incomplete summary updates before handing off to repository recording.

## Test Plan
- [x] Add unit tests.

## Revert Plan
- Revert this PR after pausing intake and draining or reconciling pending project-analysis work, because the revert removes its consumers.

## Issue Links
- [CODEM-632](https://linear.app/uber/issue/CODEM-632/projects-issues)

## Stack
1. #1057
1. #1066
1. #1058
1. #1062
1. #1065

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