Skip to content

feat(stovepipe): add project status lookup by request ID - #840

Open
mnoah1 wants to merge 2 commits into
mainfrom
mnoah1/stovepipe-project-status-by-id
Open

mnoah1 wants to merge 2 commits into
mainfrom
mnoah1/stovepipe-project-status-by-id

Conversation

@mnoah1

@mnoah1 mnoah1 commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Why?

We already have a way to look up an individual request by URI. Since we simplified the request ID format, it would also be helpful to have a way to look up a request based on ID. Adjust the existing GetProjectStatusByURI controller to support lookup by request ID, reusing the existing logic mostly as-is and returning an equivalent shape.

What?

Add GetProjectStatusByID with the same status fields and pagination as the URI API. Both endpoints use a shared ProjectStatusController and domain request/result types for validation, durable status reads, and pagination. Preserve the existing URI wire contract and its retryable summary-visibility gap; classify unknown IDs as lookup misses.

Regenerate RPC bindings and update the project-status RFC.

Test Plan

  • Unit tests: ./tool/bazel test //stovepipe/controller:go_default_test //service/stovepipe/server/mapper:go_default_test //service/stovepipe/server/handler:go_default_test --test_output=errors.
  • Docker integration: ./tool/bazel test //test/integration/stovepipe:go_default_test --test_output=errors. Covers equivalent ID/URI responses, pagination across selectors, explicit green results, and queue isolation.
  • Repository checks: make fmt, make lint, make check-tidy, and make check-gazelle.

Summary:
## Why?

`Ingest` returns a request ID, but project status can only be queried by commit URI. Consumers need to inspect that request directly.

## What?

Add `GetProjectStatusByID` with the same status fields and pagination as the URI API. Both endpoints use a shared `ProjectStatusController` and domain request/result types for validation, durable status reads, and pagination. Preserve the existing URI wire contract and its retryable summary-visibility gap; classify unknown IDs as lookup misses.

Regenerate RPC bindings and update the project-status RFC.

Test Plan:
- Unit tests: `./tool/bazel test //stovepipe/controller:go_default_test //service/stovepipe/server/mapper:go_default_test //service/stovepipe/server/handler:go_default_test --test_output=errors`.
- Docker integration: `./tool/bazel test //test/integration/stovepipe:go_default_test --test_output=errors`. Covers equivalent ID/URI responses, pagination across selectors, explicit green results, and queue isolation.
- Repository checks: `make fmt`, `make lint`, `make check-tidy`, and `make check-gazelle`.
@mnoah1
mnoah1 marked this pull request as ready for review October 12, 2026 15:16
@mnoah1
mnoah1 requested review from a team, behinddwalls and sbalabanov as code owners October 12, 2026 15:16
@mnoah1
mnoah1 enabled auto-merge October 12, 2026 15:16

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